在WPF中使用DataContext作为CommandParameter

35

我想在WPF按钮上将当前的DataContext(一个ViewModel实例)作为CommandParameter传递。我应该使用什么语法?

<Button 
  x:Name="btnMain"
  Command="infra:ApplicationCommands.MyCommand"
  CommandParameter="{Binding ???}"
 />

注意顺序很重要。CommandParameter 必须放在 Command 之前,否则你只会看到 null 作为参数被传递。 - RedX
2个回答

72

一个没有路径的空绑定直接绑定到数据上下文,因此

{Binding}

只需这样就能使其工作!以你的示例为例:

<Button 
  x:Name="btnMain"
  Command="infra:ApplicationCommands.MyCommand"
  CommandParameter="{Binding}"
 />

这太简单了,真是太棒了。不错 :) - Richard Moore

13
<Button 
   x:Name="btnMain"
   Command="infra:ApplicationCommands.MyCommand"
   CommandParameter="{Binding}" 
/>
只要按钮在具有DataContext的项的可视树中,就可以实现该功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接