【发布时间】:2016-04-25 07:00:05
【问题描述】:
public class PricingGrpModel
{
public string Name { get; set; }
public string Description { get; set; }
}
private ObservableCollection<PricingGrpModel> _myCollection;
public ObservableCollection<PricingGrpModel> myCollection
{
get { return _myCollection; }
set { _myCollection= value; OnPropertyChanged("myCollection"); }
}
myCollection.CollectionChanged += new NotifyCollectionChangedEventHandler(myCollection_CollectionChanged);
void myCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
try
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
break;
case NotifyCollectionChangedAction.Remove:
break;
}
}
catch(Exception exception)
{
}
}
我已将“myCollection”ObservableCollection 绑定到 DataGrid 的 ItemsSource。添加或删除行时触发的集合更改事件。但我无法跟踪现有行值的变化。当 ObservableCollection 中的项目属性发生更改时,如何获得通知?
【问题讨论】:
-
您希望
PricingGrpModel实现INotifyPropertyChanged。 msdn.microsoft.com/en-us/library/… -
只是为了澄清:ObservableCollection 不知道项目的特定变化,ObservableCollection 可以告知您自身的变化,例如新项目或删除的项目。因此,正如 Chris Wohlert 所说,您需要在 PricingGrpModel 上实现 INotifyPropertyChanged 才能处理每个单独对象的任何更改。
-
"PricingGrpModel" 类是一个实体类,它的意思是从 EF 生成的,那么我该如何实现 'INotifyPropertyChanged'..?
-
创建
PricingGrpViewModel -
我们不能不创建一个新类吗?