这与此问题有关
MVVM way to close document with possibility to cancel out
我正在使用第三方库(AvalonDock)它有一个CloseCommand属性,如何使用Caliburn将此属性挂钩到Action方法?
使用vanilla WPF它可能看起来像这样
<ad:DockingManager
DataContext="{Binding Manager}"
DocumentsSource="{Binding Documents}">
<ad:DockingManager.LayoutItemContainerStyle>
<Style TargetType="{x:Type ad:LayoutItem}">
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}"/>
</Style>
</ad:DockingManager.LayoutItemContainerStyle>
</ad:DockingManager>
答案 0 :(得分:1)
如果我理解正确,你可以尝试一下。
<ad:DockingManager cal:Message.Attach="[Event DocumentClosed] = [Action DockingManager_DocumentClosed($eventArgs)]" />
在您的ViewModel
中public void DockingManager_DocumentClosed(DocumentClosedEventArgs e)
{
Models.Documents.Document doc = e.Document.Content as Models.Documents.Document;
DocumentSources.Remove(doc);
}
你有几个选择。
ps:Models.Documents是一个类,其中存储了我的(文档)集合