C# 命令绑定相对路径

C# 命令绑定相对路径,c#,wpf,command,commandbinding,C#,Wpf,Command,Commandbinding,在我的窗口中(比如说MyCanvas)有一个新的命令定义,然后我将它绑定到我的窗口。通常,CanExecute和执行的处理程序直接在MyCanvas中执行。但是,是否有可能将CanExecute和执行的处理程序绑定到相对路径,例如MyCanvas.Logic.CanExecute\u OpenCamera 这是我当前的XAML <Window.Resources> <RoutedUICommand x:Key="OpenCamera" Text="Open ca

在我的窗口中(比如说
MyCanvas
)有一个新的命令定义,然后我将它绑定到我的窗口。通常,
CanExecute
和执行的处理程序直接在
MyCanvas
中执行。但是,是否有可能将
CanExecute
执行的
处理程序绑定到相对路径,例如
MyCanvas.Logic.CanExecute\u 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>


可以,但必须使用转换器,从类的绑定对象或其类型(如果方法是静态的)创建对相应方法的委托。有关详细信息,请参见。

相对路径?你是说像一个名称空间?是的,不知怎么的。命令回调是在我在窗口中使用的类中定义的。您不能这样做,因为CanExecute和Execute是事件。谢谢。非常酷的链接,但看起来非常复杂和容易。我最好将事件处理程序放在窗口内。