如何在我的列表中显示一些项目时绑定我的列表到网格

本文关键字:列表 我的 项目 绑定 网格 显示 | 更新日期: 2023-09-27 18:09:28

我有一个绑定到网格的列表。我的列表项有像RunTimeState这样的属性。用户可以选择网格中的每个项目并将其删除。当一个项被删除时,它的RunTimeState被设置为deleted。我怎样才能让我的网格不显示这些已删除的项目?

如何在我的列表中显示一些项目时绑定我的列表到网格

每当您的项目被删除时,您应该引发INotifyPropertyChanged.PropertyChanged事件,并将属性名称设置为网格数据源。并且该属性应该过滤项目,否则该项目应该从您的集合中删除。

代码可以像这样:

var myDataSource = ...;
public void DeleteItem(Item item)
{
  item.RunTimeState = RunTimeState.Deleted;
  // you can remove the item from the myDataSource here or filter it later
  PropertyChanged(this, new PropertyChangedEventArgs("DataSource"));
}
public IList<Item> DataSource 
{
  get { return myDataSource; }
  // or
  get 
  { 
    return myDataSource.Where(i => i.RunTimeState != RunTimeState.Deleted).ToList(); 
  }
}