在ViewModel Silverlight MVVM中处理CheckBox的Checked和Uncheck事件

时间:2014-01-06 06:35:20

标签: c# silverlight mvvm checkbox viewmodel

我在silverlight数据网格中的复选框的check and unchecked事件上应用了一个函数。我已经在xaml.cs部分中创建了该函数。如何在ViewModel中创建相同的功能?

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

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

1 个答案:

答案 0 :(得分:2)

您可以在ViewModel中创建一个方法(即MyViewModel.cs):

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

并从您的View(.xaml.cs)访问它:

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