我的ViewModel
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>
过孔已被数据实例化,因此不是导致NullReference异常的原因。我相信XAML是不正确的。
答案 0 :(得分:2)
可能您正在寻找类似的东西吗?
<ListView.ItemTemplate>
<DataTemplate x:Name="dt" x:DataType="x:String">
<Grid>
<TextBlock FontSize="14" Text="{x:Bind}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
在数据模板中,{x:Bind}
的上下文是模板对象,它是您在ItemsSource
中设置的集合中的字符串项。