在列表框中添加项目时将调用的事件处理程序

lio*_*art 12 wpf listbox event-handling

在WPF的列表框中添加项目时是否会调用事件处理程序?

谢谢!

Mit*_*eat 22

问题是INotifyCollectionChanged显式实现了包含事件处理程序的接口,这意味着在使用事件处理程序之前必须首先转换ItemCollection:

public MyWindow()   
{   
    InitializeComponent();   

    ((INotifyCollectionChanged)mListBox.Items).CollectionChanged +=   
        mListBox_CollectionChanged;   
}   

private void mListBox_CollectionChanged(object sender,    
    NotifyCollectionChangedEventArgs e)   
{   
    if (e.Action == NotifyCollectionChangedAction.Add)   
    {   
        // scroll the new item into view   
        mListBox.ScrollIntoView(e.NewItems[0]);   
    }       
}
Run Code Online (Sandbox Code Playgroud)

参考.

还应考虑Josh对可观察集合的建议.