我的 View 模型
BookingTakerViewModel
拥有特性
public List<string> Vias {get;set;}
我想将 ListView 与 DataTemplate 绑定(bind),但我不知道如何做到这一点。这是我的代码,它在运行时抛出此错误:
"Unable to cast object of type 'System.String' to type 'UI_Test_1.ViewModels.BookingTakerViewModel'."
我认为 x:DataType 应该引用该类,在本例中它是我的 Viewmodel。我认为 x:Bind Vias 是错误的,因为这是一个列表,所以不知道要做什么。
<ListView
Name="viasList"
Width="300"
BorderBrush="Black"
BorderThickness="5"
ItemsSource="{x:Bind viewModel.Vias, Mode=OneWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="MinHeight" Value="1" />
<Setter Property="MaxHeight" Value="15" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:Name="dt" x:DataType="viewmodels:BookingTakerViewModel">
<Grid>
<TextBlock FontSize="14" Text="{x:Bind Vias, Mode=OneWay}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
通孔是用数据实例化的,因此并不是导致 NullReference 异常的原因。我认为 XAML 不正确。
最佳答案
您可能正在寻找类似的东西?
<ListView.ItemTemplate>
<DataTemplate x:Name="dt" x:DataType="x:String">
<Grid>
<TextBlock FontSize="14" Text="{x:Bind}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
在数据模板内,{x:Bind}
的上下文是模板化对象,它是您在 ItemsSource
中设置的集合中的字符串项。
关于c# - UWP ListView 数据模板绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53237837/