c# - UWP ListView DataTemplate 绑定
问题描述
我的视图模型
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 是不正确的。
解决方案
可能您正在寻找这样的东西?
<ListView.ItemTemplate>
<DataTemplate x:Name="dt" x:DataType="x:String">
<Grid>
<TextBlock FontSize="14" Text="{x:Bind}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
在数据模板中,上下文{x:Bind}
是模板对象,它是您在 中设置的集合中的字符串项ItemsSource
。
推荐阅读
- javascript - 发送邮件后php成功消息不起作用
- android - 是否可以创建一个应用程序,当您在 Instagram 等社交媒体应用程序中发送短信时触发事件?
- python - 合并具有唯一 ID 计数的列上的数据框
- javascript - 反应钩子。同时从多个孩子更新父状态
- oracle - 为什么 FGA Oracle 会捕获错误?
- flutter - 当光标在其上方时,在 BottomNavigationBarItem 上方正方形(颤动网络)
- javascript - 设备出现少量丢包后,约 30 秒内未发送或接收 WebSocket 消息
- node.js - 切换 NodeJS 模块依赖
- aws-api-gateway - AWS WebSocket API 网关必须对 $connect、$disconnect 和 $default 具有相同的集成?
- javascript - 防止 SweetAlert2 从 willClose 中关闭/解除?