ObservableCollection绑定到DataGrid单元格更新事件

时间:2014-04-17 10:27:05

标签: c# wpf datagrid observablecollection

代码(与问题相关)

 <DataGrid      Grid.Row="1"
                   ItemsSource="{Binding WatchList}" />
public static WatchListData<Quote> watchList;
watchList=new WatchListData <Quote>();
public WatchListData <Quote> WatchList
    {
        get { return watchList; }
        set
        {
            watchList = value;
        }
    }

public class WatchListData<Quote> : ObservableCollection<Quote>
{
    protected override void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        base.OnCollectionChanged(e);
        MessageBox.Show(e.Action.ToString());
    }
}

 public class Quote : INotifyPropertyChanged
{
    private string _symbol;
    private double _last;

    public string Symbol
    {
        get { return _symbol; }
        set
        {
            _symbol = value;
            NotifyPropertyChanged("Symbol");
        }
    }

    public double Last
    {
        get { return _last; }
        set
        {
            _last = value;
            NotifyPropertyChanged("Last");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

}

问题 我有WPF DataGrid绑定到ObservableCollection。当用户点击datagrid时,键入文本并按Enter键或单击其他行或窗口,他添加新行,我需要获取此行并执行一些代码。此外,当用户更改单元格中的值时,我需要获取此事件。我正在尝试使用 覆盖void OnCollectionChanged 但是当用户开始键入新单元格时(在他按下第一个键后,但是不是当他完成时)并且当用户更改现有单元格中的文本时不触发。只有“添加”操作会提前触发,根本不会触发“替换”操作。有可能解决方案吗?

0 个答案:

没有答案