Как иметь несколько таблиц данных в 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, чтобы определить, какую табличку данных следует выбирать в зависимости от типа данных. Здесь вы можете найти пример.