1

ウィンドウ内(たとえばMyCanvas)に新しいコマンド定義があり、それをウィンドウにバインドします。通常、CanExecuteおよびExecutedのハンドラーは。内に直接ありますMyCanvasCanExecuteしかし、たとえば、ハンドラーとExecutedハンドラーを相対パスにバインドすることはどういうわけか可能MyCanvas.Logic.CanExecute_OpenCameraですか?

これは私の現在のXAMLです。

<Window.Resources>
        <RoutedUICommand x:Key="OpenCamera" Text="Open camera" />
</Window.Resources>    
<Window.CommandBindings>
    <CommandBinding Command="{StaticResource OpenCamera}" CanExecute="CanExecute_OpenCamera" Executed="Executed_OpenCamera"/>
</Window.CommandBindings>

これが私が定義しようとしていることです。ロジックはMyCanvasの公有財産です。

<Window.Resources>
        <RoutedUICommand x:Key="OpenCamera" Text="Open camera" />
</Window.Resources>    
<Window.CommandBindings>
    <CommandBinding Command="{StaticResource OpenCamera}" CanExecute="Logic.CanExecute_OpenCamera" Executed="Logic.Executed_OpenCamera"/>
</Window.CommandBindings>
4

1 に答える 1

0

できますが、クラスのバインドされたオブジェクトから、またはメソッドが静的な場合はその型から、それぞれのメソッドへのデリゲートを作成するコンバーターを使用する必要があります。詳細については、 http://wpfglue.wordpress.com/2012/05/07/commanding-binding-controls-to-methods/を参照してください。

于 2012-11-19T19:08:46.743 に答える