2014-01-06 48 views
0

我有一个函数应用于silverlight数据网格中复选框的check和unchecked事件。我在xaml.cs中创建了这个函数。我如何在ViewModel中做同样的功能?在ViewModel中处理CheckBox的Checked和Uncheck事件Silverlight MVVM

主要问题是我需要在ViewModel中访问发件人。

private void HandleChecked(object sender, RoutedEventArgs e) 
    { 
     CheckBox chk = sender as CheckBox; 
     var bindingExpression = chk.GetBindingExpression(CheckBox.IsCheckedProperty); 
     if (bindingExpression != null) 
     { 
      bindingExpression.UpdateSource(); 
     } 
    } 

回答

2

你可以让你的视图模型(即MyViewModel.cs)的方法:

public void DoCheckboxStuff(bool checked) 
{ 
    ... 
} 

,并从您的视图访问它(.xaml.cs):

private void HandleChecked(object sender, RoutedEventArgs e) 
{ 
    CheckBox chk = sender as CheckBox; 
    MyViewModel mvm = this.DataContext as MyViewModel; 
    mvm.DoCheckboxStuff(chk.IsChecked); 
} 
相关问题