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对可观察集合的建议.