2017-05-29 76 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不空值。它在我的最後工作得非常好。 –

相關問題