Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改行的成员时,将DataGrid行传递给代码隐藏_C#_Wpf_Xaml_Checkbox_Datagrid - Fatal编程技术网

C# 修改行的成员时,将DataGrid行传递给代码隐藏

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,它从列表中获取名称、年龄和IsFriend值。我将列的格式设置为:

<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;
}