Как иметь несколько таблиц данных в UWP ListView (x:bind)

Я застрял в своем приложении UWP, я пытаюсь следовать принципу MVVM с {x:bind} вместо более старого способа WPF {имя привязки}

Но я застрял с моей идеей / разработкой, я пытаюсь вставить несколько DataTemplates в ListView (или GridView).

Я хочу сделать что-то вроде этого в качестве примера:

            <ListView.ItemTemplate>
                <DataTemplate x:DataType="localModels:Cars">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="Name:" />
                            <TextBox Text="{x:Bind Name}" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
                <!-- Here is the second DataTemplate which isn't allowed in UWP -->
               <DataTemplate x:DataType="localModels:Bikes">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="Name:" />
                            <TextBox Text="{x:Bind Name}" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>

Как видите, у меня есть 2 DataTemplate: автомобили и мотоциклы внутри ListView.ItemTemplate.

Не уверен, что это актуально: Cars.cs наследуется от родительского Bike.cs.

Я действительно не понимаю, почему UWP не принимает более 1 DataTemplate в ListView.ItemTemplate. Потому что я действительно хочу, чтобы мой ListView отображал как можно больше данных.

Как решить эту проблему в UWP и {x:bind}?

1 ответ

Решение

Вы можете использовать DataTemplateSelector, чтобы определить, какую табличку данных следует выбирать в зависимости от типа данных. Здесь вы можете найти пример.

Другие вопросы по тегам