Xaml 如何在MVVM中指定命令绑定范围?

Xaml 如何在MVVM中指定命令绑定范围?,xaml,mvvm,Xaml,Mvvm,我在玩MVVM,在将命令绑定到按钮时遇到了一些障碍。我在视图(=UserControl)中有几个按钮,它们是根据我拥有的对象列表生成的 我的代码如下所示: Command = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ViewModel.CommandToBind}" (主窗口) (用户控制) 但是ConnectCommand没有被调用,

我在玩MVVM,在将命令绑定到按钮时遇到了一些障碍。我在视图(=UserControl)中有几个按钮,它们是根据我拥有的对象列表生成的

我的代码如下所示:

Command = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ViewModel.CommandToBind}"
(主窗口)


(用户控制)



但是ConnectCommand没有被调用,我认为这是因为XAML在AllConnections绑定中寻找它,而不是在ViewModels绑定中寻找它。如何指定此项?

您应该使用相对源来指定祖先。大概是这样的:

Command = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ViewModel.CommandToBind}"

您应该使用相对源来指定祖先。大概是这样的:

Command = "{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ViewModel.CommandToBind}"

您可以将命令添加到资源中,只需使用
{StaticResource yourCommand}
。这可以大大简化xaml



有用的链接:


您可以将命令添加到资源中,只需使用
{StaticResource yourCommand}
。这可以大大简化xaml



有用链接:


按钮内容=“{Binding Password}”-已正确绑定?按钮内容=“{Binding Password}”-已正确绑定?是。这取决于如何在viewyep上设置datacontext。这取决于如何在视图上设置datacontext