.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
88 个问题
ListView 的 SelectedItem 属性无法在代码中设置,如果在代码中设置它,则它不会显示在视图中,也不会触发 ItemSelected 事件。
你好,
你可以使用数据绑定的方式修改 SelectedItem 并通过 OnPropertyChanged 方法发送广播,以使 ListView 视图和 ItemSelected 事件可以响应数据变化。
请参考以下步骤:
第一步: 在 ViewModel 中实现 INotifyPropertyChanged 接口:
MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string name = "") =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
第二步: 实现与 SelectedItem 相关属性 SelItem 的数据绑定方法:
private Item selItem;
public Item SelItem
{
get
{
return selItem;
}
set
{
if (value != selItem)
{
selItem = value;
OnPropertyChanged(); // reports this property has changed.
}
}
}
第三步: 在 ViewModel 中设置 SelItem,例如 SelItem = Items[1];
// Items 是绑定到 ListView 的 ItemsSource。
第四步: 将 ViewModel 绑定到 ListView。
// in the page code behind
BindingContext = new MainViewModel();
// in xaml
<ListView ItemSelected="vegColl_ItemSelected" ItemsSource="{Binding Items}" SelectedItem="{Binding SelItem,Mode=TwoWay}">
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。