1

我在 WPF 相当初学者。我有复选框,我希望每次检查更改都会执行一个获取 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 参数,我怎样才能得到它?

谢谢

4

2 回答 2

1

在你的 ViewModel RelayCommand 看起来像

private RelayCommand<string> AddSelectedItemsCommand{get;set;}

在您的 ViewModel 构造函数代码中看起来像

AddSelectedItemsCommand=new RelayCommand<string>(AddSelectedItemsMethod);


void AddSelectedItemsMethod(string AddItem)
{
 Your Code Goes Here.
  }
于 2012-09-30T18:11:13.407 回答
0

您应该使用InvokeCommandAction类。您可以在 Expression Blend SDK 中找到它,也可以简单地将这个 NuGet 包添加到您的项目中。

<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>
于 2012-09-30T07:38:29.543 回答