C# 修改行的成员时,将DataGrid行传递给代码隐藏
我有一个DataGrid,它从列表中获取名称、年龄和IsFriend值。我将列的格式设置为:C# 修改行的成员时,将DataGrid行传递给代码隐藏,c#,wpf,xaml,checkbox,datagrid,C#,Wpf,Xaml,Checkbox,Datagrid,我有一个DataGrid,它从列表中获取名称、年龄和IsFriend值。我将列的格式设置为: <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"></DataGridTextColumn> <DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"><
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"></DataGridTextColumn>
<DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"></DataGridTextColumn>
<DataGridTemplateColumn Header="Friend">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsFriend, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Checked="CheckBox_ValueChanged"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
我不确定是否应该将该行传递给CheckBox\u ValueChanged方法(或如何传递),或者是否有更简单的方法使用数据绑定或XAML中的类似内容获取名称。您可以访问
CheckBox的DataContext
,从中可以获得Name
属性-
private void CheckBox_ValueChanged(object sender, RoutedEventArgs e)
{
var checkBox = sender as CheckBox;
string name = (checkBox.DataContext as YourClassName).Name;
}
YourClassName
是包含姓名、年龄、好友属性的类名。非常有效!非常感谢!
private void CheckBox_ValueChanged(object sender, RoutedEventArgs e)
{
var checkBox = sender as CheckBox;
string name = (checkBox.DataContext as YourClassName).Name;
}