我的视图模型
BookingTakerViewModel
有财产
public List<string> Vias {get;set;}
我想将 ListView 与 DataTemplate 绑定,但我不知道如何去做。这是我的代码,它在运行时抛出此错误:
"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>
Vias 是用数据初始化的,所以它不是导致 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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句