我在WPF很开心。 我有checkBox,我希望每次检查更改都会超出获取IsChecked参数并执行某些操作的命令。
我的XAML文件中有下一个代码:
在我的viewModel中,我有下一个代码:
private ICommand _addSelectedItemsCommand;
public ICommand AddSelectedItemsCommand
{
get
{
if (_addSelectedItemsCommand == null)
{
_addSelectedItemsCommand = new RelayCommand(param => this.AddSelectedItems());
}
return _addSelectedItemsCommand;
}
}
private void AddSelectedItems()
{
Do something...
}
但是对于“Do somthing”我需要IsChecked参数,我怎么能得到它?
由于
答案 0 :(得分:1)
在您的ViewModel RelayCommand中看起来像
private RelayCommand<string> AddSelectedItemsCommand{get;set;}
在您的ViewModel构造函数代码中看起来像
AddSelectedItemsCommand=new RelayCommand<string>(AddSelectedItemsMethod);
void AddSelectedItemsMethod(string AddItem)
{
Your Code Goes Here.
}
答案 1 :(得分:0)
您应该使用InvokeCommandAction课程。您可以在Expression Blend SDK中找到它,或者只需将this NuGet package添加到项目中即可。
<CheckBox
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<ei:InvokeCommandAction Command="{Binding AddSelectedItemsCommand}" CommandParameter="..." />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>