在我的DataGrid
中,最后一列是TemplateColumn
,其中有一个编辑按钮,当前的实现是用户需要选中该行旁边的复选框,然后点击编辑按钮,显然这是无意义的,所以当我点击相关的编辑按钮时,是不是有办法获取当前行?
答案 0 :(得分:2)
“当前行”是DataContext
的{{1}},因此您可以投射Button
参数和sender
属性:
DataContext
答案 1 :(得分:0)
您可以使用以下代码获取所选行: 假设这是模板列:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Button_Click" CommandParameter="{Binding ElementName=dgDatagrid}">Details</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
将元素名称作为datagrid的名称作为命令参数提供,并在代码隐藏或视图模型中使用以下内容:
private void Button_Click(object sender, RoutedEventArgs e)
{
DataGrid datagrid = ((Button)sender).CommandParameter as DataGrid;
var selectedRow = datagrid.SelectedItem;
var selectedIndex = datagrid.SelectedIndex;
}
这样您就可以获得所选项目或行。