2017-06-17 5 views
1

私はDataGridを持っています。これはオブジェクトのリストで満たされています。 イベントはMouseDoubleClickです。DataGridのどの行がクリックされたかを確認するには?

DataGridの行がちょうどのを見つけようとしています。

は、これまでのところ私はこれを試してみた:悲しいことに私はSystem.NullReferenceException取得

private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
    DataGridRow Row = sender as DataGridRow; 
    int RowNumber = Row.GetIndex(); 
    //dostuff with RowNumber ; 
} 

を。完全性について

XAMLは:それは、グリッド(DataGridの)イベントを送信しているので、

<DataGrid x:Name="DataGrid_Table" Grid.Row="3" AutoGenerateColumns="True" ItemsSource="{Binding}" IsReadOnly="True" 
     MouseDoubleClick="DataGrid_MouseDoubleClick" FontSize="22" /> 
+1

あなたがnullの例外を取得し、あなたは変換/ 'DataGridRow'にキャストしてみてください。 'SelectedItem'または現在選択されているグリッドの行のインデックスを示す' DataGrid.SelectedIndex'が必要でしょう。そのインデックスはゼロインデックスされることに注意してください。 – Nkosi

+1

[WPFデータグリッドで選択された行クリックイベント?](https://stackoverflow.com/questions/3120616/wpf-datagrid-selected-row-clicked-event)の可能な複製 – Alexander

答えて

1

あなたはヌル例外を取得し、あなたは/変換DataGridRowにキャストしてみてください。 SelectedItemのインデックス、または現在選択されているグリッドの行を示すDataGrid.SelectedIndexが必要です。そのインデックスはゼロインデックスされることに注意してください。それは、グリッド(DataGridの)イベントを送信しているので、

private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { 
    var dataGrid = sender as DataGrid; 
    if (dataGrid != null) { 
     var index = dataGrid.SelectedIndex; 
     //dostuff with index 
    } 
} 
関連する問題