这是关于msdn的教程。这是用来关闭工作区或选项卡的。有关MVVM教程的问题:关闭工作区/ Observable Collection
// workspaces declared as follows
_workspaces = new ObservableCollection<WorkspaceViewModel>();
_workspaces.CollectionChanged += this.OnWorkspacesChanged;
void OnWorkspacesChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null && e.NewItems.Count != 0)
foreach (WorkspaceViewModel workspace in e.NewItems)
workspace.RequestClose += this.OnWorkspaceRequestClose;
if (e.OldItems != null && e.OldItems.Count != 0)
foreach (WorkspaceViewModel workspace in e.OldItems)
workspace.RequestClose -= this.OnWorkspaceRequestClose;
}
什么,我不明白是什么将e.NewItems
和e.OldItems
是。假设NewItems
将是添加到集合中的新项目,我附加了事件处理程序?但那么它会是单数的,因为我通常每次添加1个项目?那么如果它意味着更改后仍然存在的所有项目,为什么我需要重新附加事件处理程序?