0

これはこの質問に関連しています

キャンセルする可能性があるドキュメントを閉じるMVVMの方法

サード パーティのライブラリ (AvalonDock) を使用しています。これには CloseCommand プロパティがあります。Caliburn を使用して、このプロパティを Action メソッドに接続するにはどうすればよいですか?

バニラ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>
4

1 に答える 1

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 は、私の (ドキュメント) コレクションが格納されるクラスです

于 2013-12-20T12:14:10.283 に答える