1

Prismを使用して複合WPFアプリケーションを構築し、リボンライブラリを使用しています。私が非常に苦労していることの1つは、リージョン交差コマンドを使用することです。

たとえば、「RibbonRegion」にリボンがあり、「MainRegion」にグリッドビューがあります。リボンのボタンで、グリッドビューで現在選択されているアイテムを含むメッセージボックスをポップアップ表示するとします。これを行うにはどうすればよいですか?

簡単な方法はEventAggregatorを使用することですが、ボタンをクリックするだけで多数のサブスクライバーが接続されている場合は、メモリリークの問題を求めているだけです。

クロスリージョンコマンドを使用して、「RibbonRegion」のボタンをクリックすると、グリッドビューで選択したアイテムが取得され、その値を含むメッセージボックスがポップアップ表示されるようにする方法はありますか?

4

1 に答える 1

1

あなたは使用することができますSystem.Windows.Input.RoutedUICommand

まず、コマンドを次のように宣言する必要があります。

public static class Commands
{
    public static readonly RoutedUICommand TestCommand = new RoutedUICommand("Test Command",
        "Test Command", typeof(Commands));
}

次に、RibbonRegion xamlで:

<my:RibbonButton Command="{x:Static cmd:Commands.TestCommand}" ...

次に、MainRegion xamlで:

<UserControl.CommandBindings>
    <CommandBinding CanExecute="OnTestCanExecute"
                    Command="{x:Static cmd:Commands.TestCommand}"
                    Executed="OnTestExecute" />
</UserControl.CommandBindings>

次に、xaml.csで:

public void OnTestRouteCanExecute(object sender, System.Windows.Input.CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }

    public void OnTestRouteExecute(object sender, System.Windows.Input.ExecutedRoutedEventArgs e)
    {
        // do some stuff here
    }
于 2012-08-16T18:42:38.747 に答える