我有一个绑定到网格的列表。我的列表项具有RunTimeState等属性。用户可以选择网格中的每个项目并将其删除。删除项目时,其RunTimeState设置为Deleted。如何让我的网格不显示这些已删除的项目?
答案 0 :(得分:1)
每当您的项目被删除时,您应该将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();
}
}