DataSet からデータが取得され、DataGrid が設定されている DataGrid があります。
AutoGenerateColumns="true"
ここで、DataGrid.Columns.Insert(6, Column); を使用してコードを使用して、インデックス 6 に列を追加したいと考えています。
問題は、DataGrid に列がないように見えることです。インデックスが範囲内にある必要があるというエラーが発生しました。
列を数えようとすると、常に0が表示されます。しかし、すべてのデータが表示されます。
トリックはありますか、または列数が0になるのはなぜですか.
ここにいくつかのコードがあります:
XAML DataGrid:
<DataGrid AutoGenerateColumns="True" AutoGeneratingColumn="DataGrid_AutoGeneratingColumnHandler" HorizontalAlignment="Stretch" Name="dgJournal" VerticalAlignment="Stretch" UseLayoutRounding="True" Margin="8,65,8,30" HorizontalGridLinesBrush="Blue" RowHeaderWidth="25" VerticalGridLinesBrush="Blue" MouseDoubleClick="DataGrid_CellDoubleClick" DataGridCell.Selected="DataGrid_GotFocus" />
追加される列:
private DataGridTemplateColumn CreateCheckBoxColumn()
{
MdlSettings modSett = new MdlSettings();
DataGridTemplateColumn tempCol = new DataGridTemplateColumn();
tempCol.Header = "S";
FrameworkElementFactory factory = new FrameworkElementFactory(typeof(CheckBox),"ownselect");
DataTemplate voidTemplate = new DataTemplate();
voidTemplate.VisualTree = factory;
tempCol.CellTemplate = voidTemplate;
Style chkBoxStyle = new Style();
chkBoxStyle.Setters.Add(new EventSetter(CheckBox.CheckedEvent, new RoutedEventHandler(this.check_CheckBox)));
chkBoxStyle.Setters.Add(new EventSetter(CheckBox.UncheckedEvent, new RoutedEventHandler(this.check_CheckBox)));
chkBoxStyle.Setters.Add(new Setter(CheckBox.IsCheckedProperty, true));
chkBoxStyle.Setters.Add(new Setter(CheckBox.IsThreeStateProperty, false));
tempCol.CellStyle = chkBoxStyle;
return tempCol;
}