2013-09-04 15 views
5

Jak uzyskać indeks klikniętej/zaznaczonej komórki w DataGrid?
Moje kolumny DataGrid wygenerowane automatycznie i nie chcę używać żadnego DataTemplate.WPF: Pobierz indeks klikniętej/wybranej komórki na DataGrid

 <DataGrid 

     ItemsSource="{Binding Table,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,IsAsync=True}" AutoGenerateColumns="True"> 

    </DataGrid> 
+0

co masz na myśli ze słowem "indeks"? nie ma takiej właściwości w [DataGridCell] (http://msdn.microsoft.com/de-de/library/system.windows.controls.datagridcell.aspx) lub [DataGridCellInfo] (http://msdn.microsoft.com /de-de/library/system.windows.controls.datagridcellinfo.aspx) – WiiMaxx

+0

Co chcesz zrobić z Index. kiedy możesz mieć wartość w rzeczywistości. – JSJ

Odpowiedz

8
DataGrid x = (DataGrid)this.FindName("myDataGrid"); 
var index = x.SelectedIndex; 

Istnieją również inne właściwości Przydatne:

x.CurrentColumn; 
x.CurrentItem; 
x.SelectedItem; 
x.SelectedValue; 
0

jest to rozwiązanie znalazłem, gdy jednostka wyboru to „komórka” i trzeba pętli wybranych komórek, coraz wiersz i indeks kolumny. Mam DataGrid tylko z textcolumn i datatable (creted z pliku csv) jako itemssource.

For Each cell As DataGridCellInfo In dataGrid1.SelectedCells 

     MsgBox(cell.Column.DisplayIndex) 
     MsgBox(dataGrid1.Items.IndexOf(cell.Item)) 
Next