C# 将命令属性与CM操作方法/协同程序一起使用

C# 将命令属性与CM操作方法/协同程序一起使用,c#,caliburn.micro,C#,Caliburn.micro,这与这个问题有关 我使用的是第三方库(AvalonDock),它有一个CloseCommand属性,如何使用Caliburn将该属性连接到一个动作方法 香草WPF看起来可能是这样的 <ad:DockingManager DataContext="{Binding Manager}" DocumentsSource="{Binding Documents}"> <ad:DockingManager.LayoutItemContainerStyle>

这与这个问题有关

我使用的是第三方库(AvalonDock),它有一个CloseCommand属性,如何使用Caliburn将该属性连接到一个动作方法

香草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>

如果我理解正确,您可以试试这个

<ad:DockingManager cal:Message.Attach="[Event DocumentClosed] = [Action DockingManager_DocumentClosed($eventArgs)]" />
你有几个选择


ps:Models.Documents是一个类,其中我的(文档)集合存储在
CloseCommand
属性定义的哪个类上,您可以设置链接吗?我认为(不确定)在您的情况下不可能,因为操作机制依赖于触发冒泡路由事件,您当前所做的有什么问题吗?好吧,它可以工作,但我必须将事件arg包装在回调中,等等。您可以添加一个
SpecialValues
条目,然后通过检查对象类型在SpecialValues processing回调中处理原始回调-这样您就可以抽象出整个例程(与提供的链接中的操作方式相同)但是你不需要在你的VMHmm中进行任何处理,你有更多的信息@Charleh吗?这对我没有帮助,如果你检查我问题中的链接,我已经准备好使用DocumentClosed事件。我需要使用命令,如果我这样做,我可以从那里添加或取消删除。@Insight你知道有没有一种方法可以将文档本身作为参数传递给是否将$eventArgs改为方法?
public void DockingManager_DocumentClosed(DocumentClosedEventArgs e)
        {
            Models.Documents.Document doc = e.Document.Content as Models.Documents.Document;
            DocumentSources.Remove(doc);
        }