2017-05-29 49 views

回答

1

“当前行”是ButtonDataContext所以你可以施放sender参数和DataContext属性:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Button button = sender as Button: 
    YourClass selectedRow = button.DataContext as YourClass; 
    //... 
} 
0

您可以使用下面的代码获取所选行: 假设这是模板列:

<DataGridTemplateColumn> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <Button Click="Button_Click" CommandParameter="{Binding ElementName=dgDatagrid}">Details</Button> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

提供元素名作为您的数据网格的命令参数和后面的代码名称或查看模型使用以下内容:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    DataGrid datagrid = ((Button)sender).CommandParameter as DataGrid; 
    var selectedRow = datagrid.SelectedItem; 
    var selectedIndex = datagrid.SelectedIndex; 
} 

这样你就可以得到所选的项目或行。

+0

selectedRow是空的,是的selectedIndex -1 –

+0

请确保您的CommandParameter不空值。它在我的最后工作得非常好。 –

相关问题