【发布时间】:2018-09-16 18:57:49
【问题描述】:
我有一个DataGrid 绑定到一个List<T>。下面是我的课。 List<FSCLevel> 绑定到我的主要DataGrid 中的RowDetails。我添加了一个过滤器控件,供用户通过CUSTOMER_CODE进行过滤。
public class CUSTCARDLevel: INotifyPropertyChanged
{
#region Members
private string _cUSTOMER_CODE;
private List<FSCLevel> _fSClist;
#endregion
#region Properties
public string CUSTOMER_CODE { get { return _cUSTOMER_CODE; } set { _cUSTOMER_CODE = value; OnPropertyChanged("CUSTOMER_CODE"); } }
public List<FSCLevel> FSCLIST { get { return _fSClist; } set {_fSClist = value; OnPropertyChanged("FSCLIST"); } }
#endregion
// INotifyPropertyChanged interface
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{ PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
我现在需要在列表中应用一些过滤器,例如在DataGrid 上,它只显示CUSTOMER_CODE 是“CUST1”。
所以问题来了,我必须使用ObservableCollection 来进行过滤吗?有没有办法可以只使用带有INotifyPropertyChanged 接口的类?如果是这样,在List<T> 中处理List<T1> 的最佳方法是什么?假设我将我的列表投射到 ObservableCollection<T> 使用:
ObservableCollection<CUSTCARDLevel> myObserveList = new ObservableCollection<CUSTCARDLevel>(myList);
内部的List<FSCLevel> 会发生什么?或者我如何将 CUSTCARDLevel 中的List<FSCLevel> 转换为 ObservableCollection?或者我需要做点什么来修复我的课程?
【问题讨论】:
标签: c# wpf filter binding datagrid