如何在 UWP ListView (x:bind) 中拥有多个数据模板
How to have multiple datatemplates in UWP ListView (x:bind)
我受困于我的 UWP 应用程序,我正在尝试使用 {x:bind} 遵循 MVVM 原则,而不是使用旧的 WPF 方式 {binding name}
但我坚持使用我的 idea/development,我正在尝试在 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: Cars and Bikes inside ListView.ItemTemplate。
不确定这是否相关:Cars.cs 继承自 Bike.cs 父级。
我真的不明白为什么 UWP 在 ListView.ItemTemplate 中不接受超过 1 个 DataTemplate。因为我真的希望我的 ListView 显示尽可能多的数据。
在 UWP 和 {x:bind} 中解决这个问题的方法是什么?
你可以使用一个DataTemplateSelector to determine which datatemplate should be selected based on your data type. Here你可以找到一个例子。
我受困于我的 UWP 应用程序,我正在尝试使用 {x:bind} 遵循 MVVM 原则,而不是使用旧的 WPF 方式 {binding name}
但我坚持使用我的 idea/development,我正在尝试在 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: Cars and Bikes inside ListView.ItemTemplate。
不确定这是否相关:Cars.cs 继承自 Bike.cs 父级。
我真的不明白为什么 UWP 在 ListView.ItemTemplate 中不接受超过 1 个 DataTemplate。因为我真的希望我的 ListView 显示尽可能多的数据。
在 UWP 和 {x:bind} 中解决这个问题的方法是什么?
你可以使用一个DataTemplateSelector to determine which datatemplate should be selected based on your data type. Here你可以找到一个例子。