Wpf 如何在同一个复选框命令中将isChecked用作命令参数

Wpf 如何在同一个复选框命令中将isChecked用作命令参数,wpf,mvvm,Wpf,Mvvm,因此,我有一个复选框,它使用WPF/MVVM触发命令。这很好,但我想使用复选框的IsChecked属性作为命令参数。我试过这个 <CheckBox Margin="3" Content="Clear Selected OEM" Command="{Binding Path=ClearOemCommand}" CommandParameter="{Binding P

因此,我有一个复选框,它使用WPF/MVVM触发命令。这很好,但我想使用复选框的IsChecked属性作为命令参数。我试过这个

  <CheckBox Margin="3" Content="Clear Selected OEM" 
                              Command="{Binding Path=ClearOemCommand}" 
                              CommandParameter="{Binding Path=IsChecked}"/>
如果我想从另一个控件使用属性,我会知道如何使用find祖先,但我在这里遇到了难题-这可能比我想象的要容易。。。只是没有在我的脑海中建立联系

谢谢

请在CommandParameter中添加相对资源Self



您可以将IsChecked与CLR属性绑定,并在CLR属性的setter上执行命令逻辑,而不是在复选框上创建命令。这是处理命令行为的另一种解决方法。

如果您遇到以下异常,就像我所做的那样

Set属性
System.Windows.Data.Binding.RelativeSource
引发异常

请尝试以下方法:

CommandParameter=“{Binding RelativeSource={RelativeSource Self},Path=IsChecked}”

是JW1是正确的。你也可以这样用elemen的名字,那也行

"{Binding Path=IsChecked,ElementName=chkAll}"

CommandParameter=“{Binding Path=IsChecked RelativeSource=Self}你应该把这个答案作为Arseny的答案,这样就可以更容易地对它进行投票和搜索…我知道,我这么做很少忘记,谢谢!@Arseny:你应该把它作为答案发布…是否可以用同样的方式设置复选框的未选中状态?如果我这样做,编译器会说你不能再设置CommandParameter了不止一次。@Strum我在复选框中找不到未选中的属性。即使它存在,您也可以根据需要设置IsChecked。@Arseny hi,这能支持
TwoWay
绑定吗?我也想绑定
IsChecked
属性,类似于
CommandParameter=“{binding Path=IsChecked,RelativeSource={RelativeSource Self},Mode=TwoWay}”“
。或者我应该单独绑定
IsChecked
?我认为
CommandParameter
可以处理
IsChecked
属性(单向),我只是怀疑我是否只能使用
CommandParameter
实现
双向绑定
IsChecked
属性?
  <CheckBox Margin="3" Content="Clear Selected OEM" 
   Command="{Binding Path=ClearOemCommand}" 
   CommandParameter="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" />
"{Binding Path=IsChecked,ElementName=chkAll}"