2012-09-30 121 views
1

我在WPF很早起步。 我有checkBox,我希望每次檢查更改都會優先執行一個獲取IsChecked參數的命令並執行一些操作。通過WPF處理命令參數MVVM

我有下面的代碼在我的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... 
    } 

但對於「做財產以後」我需要器isChecked參數,我怎樣才能得到它?

感謝

回答

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> 
1

在您的視圖模型RelayCommand樣子

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

並在您的視圖模型構造的代碼看起來像

AddSelectedItemsCommand=new RelayCommand<string>(AddSelectedItemsMethod); 


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