当我单击我正在使用Visual Studio 2010 / VB.Net的单元格时,如何返回WPF Datagrid中项目的列索引
您可以直接使用下面的代码来获取选定的单元格列索引 .
int index = datagrid.SelectedCells[0].Column.DisplayIndex;
您是否尝试在事件点击列索引中使用此功能?
int columnIndex = dataGrid.CurrentColumn.DisplayIndex;
我在MouseDoubleClick事件或PreviewKeyUp中使用此代码并且工作正常 .
DataGridCells 没有Click事件,它们有一个 Selected 事件,但是当您单击一个单元格时,通常会对一行中的每个单元格触发该事件 . GotFocus 可能是更好的选择 .
DataGridCells
Selected
GotFocus
例如
<DataGrid ItemsSource="{Binding Data}"> <DataGrid.CellStyle> <Style TargetType="{x:Type DataGridCell}"> <EventSetter Event="GotFocus" Handler="CellClick"/> </Style> </DataGrid.CellStyle> </DataGrid>
和:
void CellClick(object sender, RoutedEventArgs e) { DataGridCell cell = sender as DataGridCell; MessageBox.Show(cell.Column.DisplayIndex.ToString()); }
DataGridCell.Column.DisplayIndex 似乎返回一个合适的索引,如果它以某种方式不够,你可以使用 DataGrid.Columns.IndexOf(DataGridCell.Column) .
DataGridCell.Column.DisplayIndex
DataGrid.Columns.IndexOf(DataGridCell.Column)
每个身体都讲述了这个解决方案
Int32 columnIndex = dataGridScannedFiles.SelectedCells[0].Column.DisplayIndex;
并且它是有效但没有人告诉我们必须首先为每一列设置显示索引,对于专家来说可能是显而易见的,但是对于新手来说这是不熟悉的事情
设置它有两种方法: -
1)您可以在XAML部分进行设置..
<DataGridTextColumn Header="Serial No." Width="60" IsReadOnly="True" Binding="{Binding Path=Sno}" DisplayIndex="1"></DataGridTextColumn>
我不知道如何为自定义列设置它
<DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox x:Name="ChkItem" IsChecked="{Binding Path=Sno}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate>
所以我更喜欢另一种方式
2)创建一个功能
private void SetDisplayIndexforGridViewColumns() { Int32 ColumnCount = dt.Columns.Count; for (int i = 0; i < ColumnCount; i++) { dataGridScannedFiles.Columns[i].DisplayIndex = i; } }
dt 是我的数据表
dt
我正在为它分配显示索引
现在,如果你使用
那你一定会得到指数
4 回答
您可以直接使用下面的代码来获取选定的单元格列索引 .
您是否尝试在事件点击列索引中使用此功能?
我在MouseDoubleClick事件或PreviewKeyUp中使用此代码并且工作正常 .
DataGridCells
没有Click事件,它们有一个Selected
事件,但是当您单击一个单元格时,通常会对一行中的每个单元格触发该事件 .GotFocus
可能是更好的选择 .例如
和:
DataGridCell.Column.DisplayIndex
似乎返回一个合适的索引,如果它以某种方式不够,你可以使用DataGrid.Columns.IndexOf(DataGridCell.Column)
.每个身体都讲述了这个解决方案
并且它是有效但没有人告诉我们必须首先为每一列设置显示索引,对于专家来说可能是显而易见的,但是对于新手来说这是不熟悉的事情
设置它有两种方法: -
1)您可以在XAML部分进行设置..
我不知道如何为自定义列设置它
所以我更喜欢另一种方式
2)创建一个功能
dt
是我的数据表我正在为它分配显示索引
现在,如果你使用
那你一定会得到指数