我有一个要转换为实现 INotifyPropertyChanged 的模型的 DataTable。
这将绑定到一个带有复选框的列表框。当复选框被选中时,PropertyChanged 事件会触发。我想处理这个问题,因为我有一个绑定到 DataTable 的 DataGrid。我想根据选中的项目过滤该 DataTable。
我想订阅 MainWindow.xaml.cs 中的 PropertyChange 事件,但是我不确定如何做到这一点,因为当我假设我只需要一个时,在我的模型的构造函数中注册一个处理程序会创建 X 数量的处理程序?
这是我所拥有的:
var categoryModel = ds.Tables[1].Rows.Cast<DataRow>()
.Select(x => x["Category"].ToString())
.Distinct()
.Select(y => new LanguageCategory { CategoryName = y, IsChecked = true });
public class LanguageCategory : INotifyPropertyChanged
{
private string categoryName;
private bool isChecked;
public event PropertyChangedEventHandler PropertyChanged;
public string CategoryName
{
get { return categoryName; }
set
{
categoryName = value;
NotifyPropertyChanged("CategoryName");
}
}
public bool IsChecked
{
get { return isChecked; }
set
{
isChecked = value;
NotifyPropertyChanged("IsChecked");
}
}
private void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}