在我的窗口中(假设MyCanvas
),有一个新的命令定义,然后我将其绑定到我的窗口。通常CanExecute
和已执行的处理程序直接位于MyCanvas
内。但是,是否可以将CanExecute
和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>
答案 0 :(得分:0)
您可以,但必须使用转换器,如果方法是静态的,则从类的绑定对象或其类型创建委托给相应方法的委托。有关详细信息,请参阅http://wpfglue.wordpress.com/2012/05/07/commanding-binding-controls-to-methods/。