DevExpress コントロールと MVVM with PRISM を使用する WPF アプリがあります。
DockLayoutManager の「DockOperationCompleted」イベントを使用して、次のようにビュー モデルでコマンドを呼び出しています。
<dxd:DockLayoutManager x:Name="dockContainer">
<i:Interaction.Triggers>
<i:EventTrigger EventName="DockOperationCompleted">
<i:InvokeCommandAction Command="{Binding DataContext.SaveLayoutCommand, ElementName=dockContainer}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<dxd:LayoutGroup/>
</dxd:DockLayoutManager>
「SaveLayoutCommand」コマンドの目的は、後で復元できるようにレイアウトを保存することです。
「DockOperationCompleted」イベントは、DockItem がドッキングまたは閉じられた後に発生します (他のケースもありますが、それらは無関係です)。
問題は、メイン ウィンドウを閉じると、DockLayoutManager のドック アイテムが 1 つずつ閉じられるため、閉じたドック アイテムごとに「SaveLayoutCommand」が呼び出され、これが発生したくないことです。
イベントが発生する「DockOperationCompletedEventArgs」には、もう一度確認できる「DockOperation」プロパティがありますが、このコードが正確にどこに収まるかわかりません。
: イベントのイベント引数に基づいてコマンドが呼び出されたときに「フィルタリング」する方法はありますか?
ありがとう:)