从Checked Change事件(RoutedEventArgs)WPF获取项目

本文关键字:WPF 获取 项目 RoutedEventArgs Checked Change 事件 | 更新日期: 2023-09-27 17:59:38

我想知道是否可以从WPF中的已检查更改事件中获取Item源项?

XAML

                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox IsChecked="{Binding Active, Mode=TwoWay}" Checked="CheckBox_Checked" HorizontalAlignment="Center"></CheckBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>

示例C#(在正确答案的行上…我希望)

     private void CheckBox_Checked(object sender, RoutedEventArgs e)
    {
        **// Its not e.source, most events it's e.item...but the checked event doesn't use this..**
        Customer c = e.Source as Customer;

        if(c != null)
        .....
    }

感谢

从Checked Change事件(RoutedEventArgs)WPF获取项目

类似的事情,假设您没有遵循MVVM

  private void CheckBox_Checked(object sender, RoutedEventArgs e)
    {
      bool IsActive = (sender as CheckBox).IsChecked;
      if(IsActive)
      {
         Active;
      }
    }

你可以像Refernece 一样完成

参考2

Viewmodel

private bool _isactive;
    public bool IsActive
    {
        get { return _isactive; }
        set
        {
            _isactive = value;
            RaisePropertyChanged(() => IsActive);
        }
    }

如果您想在mvvm中获取eventargs。使用中继命令或图标命令

xaml

<CheckBox x:Name="chkbox" Command="{Binding CommandName}"
                      CommandParameter="{parameter}"/>

处理命令做必要的操作。