我在WPF的比较人员。 我有复选框,我希望每一个检查更改都会摘断一个命令,该命令得到了ischecked参数并执行一些操作。

我在XAML文件中有下一个代码:

在我的视图中,我有下一个代码:

    private ICommand _addSelectedItemsCommand;
    public ICommand AddSelectedItemsCommand
    {
        get
        {
            if (_addSelectedItemsCommand == null)
            {
                _addSelectedItemsCommand = new RelayCommand(param => this.AddSelectedItems());
            }
            return _addSelectedItemsCommand;
        }
    }


    private void AddSelectedItems()
    {
        Do something...
    }
.

但是对于“做点动”我需要ischecked参数,我怎样才能得到它?

感谢

有帮助吗?

解决方案

你应该使用 invokecommandaction 类。您可以在表达式Blend SDK中找到它,或者您可以简单地添加此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>
.

其他提示

在ViewModel Relaycommand看起来像

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

和在您的视图中,构造函数代码看起来像

AddSelectedItemsCommand=new RelayCommand<string>(AddSelectedItemsMethod);


void AddSelectedItemsMethod(string AddItem)
{
 Your Code Goes Here.
  }
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top