【发布时间】:2016-04-08 19:16:32
【问题描述】:
我在 WPF 应用程序中有一个数据网格,它像这样绑定到 ObservableCollection
<DataGrid ItemsSource="{Binding Spring.SpringData, Mode=OneWay}" />
我的数据显示正常,我可以编辑网格中的数据,但是当我手动编辑网格中的数据时它不会触发 PublishSpringChange 事件。底层数据发生变化,但事件没有触发,我错过了什么?
使用具有以下特性的 Spring 模型
public class Spring : INotifyPropertyChanged
{
private ObservableCollection<SpringData> _SpringData;
public ObservableCollection<SpringData> SpringData
{
get { return _SpringData; }
}
public Spring()
{
....
_SpringData = new ObservableCollection<SpringData>();
SpringData.CollectionChanged += PublishSpringChange;
...
}
private void PublishSpringChange(object sender, NotifyCollectionChangedEventArgs e)
{
// Code that does not run!
}
}
使用 SpringData 类
public class SpringData: BindableBase
{
private double _force;
private double _displacement;
public SpringData(double displacement, double force)
{
Displacement = displacement;
Force = force;
}
public double Displacement
{
get { return _displacement; }
set { SetProperty(ref _displacement, value); }
}
public double Force
{
get { return _force; }
set { SetProperty(ref _force, value); }
}
}
【问题讨论】: