Каждое тело говорит об этом решении
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
- мояТаблица данных
и я присваиваю ей индексы отображения
Теперь, если вы используете
Int32 columnIndex = dataGridScannedFiles.SelectedCells[0].Column.DisplayIndex;
, тогда вы обязательно получите индекс