C# 在WPF DataGrid中单击“编辑”按钮时获取当前行?
在我的C# 在WPF DataGrid中单击“编辑”按钮时获取当前行?,c#,wpf,datagrid,C#,Wpf,Datagrid,在我的DataGrid中,最后一列是一个带有编辑按钮的TemplateColumn,当前的实现是用户需要选中行旁边的复选框,然后单击编辑按钮,显然,这是胡说八道,那么,当我单击相关的编辑按钮时,是否有办法获取当前行?您可以使用以下代码获取所选行: 假设这是模板列: <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate>
DataGrid
中,最后一列是一个带有编辑按钮的TemplateColumn
,当前的实现是用户需要选中行旁边的复选框,然后单击编辑按钮,显然,这是胡说八道,那么,当我单击相关的编辑按钮时,是否有办法获取当前行?您可以使用以下代码获取所选行:
假设这是模板列:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Button_Click" CommandParameter="{Binding ElementName=dgDatagrid}">Details</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
通过这种方式,您可以获取所选项目或行。当前行是按钮的DataContext
,因此您可以强制转换发送者参数和DataContext
属性:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button:
YourClass selectedRow = button.DataContext as YourClass;
//...
}
selectedRow为空,selectedIndex为-1请确保CommandParameter不为空。在我这边,它工作得非常好。
private void Button_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button:
YourClass selectedRow = button.DataContext as YourClass;
//...
}