我有一个DataTable转换为实现INotifyPropertyChanged的模型。订阅Window.xaml.cs中的PropertyChanged事件
这将绑定到一个带有复选框的列表框。当复选框被选中时,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));
}
}
}
能否请您详细阐述该问题的更多。为什么要在Window.xaml.cs中订阅PropertyChanged? – ethicallogics
我已更新问题 – Jon