当我更改可观察集合中的元素时会触发什么事件?

What event is fired when I change an element on the observable collection?

我的视图中有一个数据网格,它绑定到我的视图模型中的一个可观察集合。

当我这样做时:

myObservableCollection[2] = myItem;

数据网格刷新项目,例如,如果我在数据网格中缩短了元素,如果 myItem 更新了受缩短影响的字段,则将其置于新位置.

但是,我想滚动到新位置,所以我尝试使用附加行为,当事件选择更改被触发时效果很好,但我需要知道什么事件被触发时我重新分配 myItem.

我尝试捕捉事件 AddingNewItemSourceUpdated,但它们都没有被触发。

Netaholic 给出了大部分答案,但只是为了完成并放置一些清晰可见的代码:

public void Demo()
{
    ObservableCollection<String> collec = new ObservableCollection<String>() {"hello"};
    collec.CollectionChanged += CollectionChanged;
    collec[0] = "goodbye";
}
void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    switch (e.Action)
    {
        case NotifyCollectionChangedAction.Add:
            break;
        case NotifyCollectionChangedAction.Move:
            break;
        case NotifyCollectionChangedAction.Remove:
            break;
        case NotifyCollectionChangedAction.Replace:
            Debug.WriteLine("The event you re expecting");
            break;
        case NotifyCollectionChangedAction.Reset:
            break;
        default:
            break;
    }
}

在第二个参数中,您将找到被替换的索引和对象

此致