我已将{AvalonDock的DocumentsSource
的{{1}}绑定到我的ViewModel的ObservableCollection,后面是文章AvalonDock 2.0 with MVVM。
将ViewModel添加到我的集合中会正确地将其添加到新选项卡中,但是如果我从UI关闭选项卡,我希望将其从集合中删除,情况并非如此:集合保留其先前的计数虚拟机与已打开的选项卡不同步。
如何在标签关闭时从集合中删除VM?本文只是将一个DockingManager
绑定属性添加到ViewModel中,但我发现将其从集合中删除更合乎逻辑。
答案 0 :(得分:0)
DocumentsSource
集合并没有真正双向绑定,我必须将DockingManager.DocumentClosed
订阅给从集合中删除ViewModel的委托:
private void DocumentClosed(object sender, DocumentClosedEventArgs e)
{
// Get the VM associated with the closed document
var documentVM = (ViewModel) e.Document.Content;
var mainVM = (MainViewModel) DataContext;
// Remove it from the tabs
mainVM.Tabs.Remove(documentVM );
}