2013-09-04 35 views
5

Làm cách nào để nhận chỉ mục của ô được nhấp/đã chọn trên DataGrid?
Các cột DataGrid của tôi được tạo tự động và tôi không muốn sử dụng bất kỳ DataTemplate nào.WPF: Nhận chỉ mục của ô được nhấp/đã chọn trên DataGrid

 <DataGrid 

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

    </DataGrid> 
+0

ý bạn là gì với từ "chỉ mục"? không có tài sản như vậy trong [DataGridCell] (http://msdn.microsoft.com/de-de/library/system.windows.controls.datagridcell.aspx) hoặc [DataGridCellInfo] (http://msdn.microsoft.com /de-de/library/system.windows.controls.datagridcellinfo.aspx) – WiiMaxx

+0

Những gì bạn muốn làm với Index. khi bạn có thể có giá trị trong thực tế. – JSJ

Trả lời

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

Ngoài ra còn có các đặc tính hữu ích khác:

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

Đây là giải pháp tôi thấy, khi đơn vị lựa chọn là "tế bào" và bạn cần phải lặp qua các ô được chọn, nhận hàng và chỉ mục cột. Tôi có một DataGrid chỉ với các cột văn bản và một dữ liệu có thể định dạng (được trích từ một tệp csv) dưới dạng các mục nguồn.

For Each cell As DataGridCellInfo In dataGrid1.SelectedCells 

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