【发布时间】:2019-04-13 17:42:57
【问题描述】:
我的视图模型
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 不正确。
【问题讨论】:
-
感谢使用绑定而不是 x:bind