最初は、AutoGeneratedColumns = True を使用して dataGrid を生成し、dataTable から値を取得していました。ただし、各データセットの列数は固定されているため、それに応じて名前を付けたいので、コードで名前を付けますが、コードを実行したときにタブが選択されていない場合、インデックスが範囲外であるというエラーが発生しました.
AutoGeneratedColumns = False を実行し、列を手動で定義することにしました。ただし、続編では、データ dataGrid が空で、データが表示されませんでした。データ テーブル名は Underlyings であり、実行時に生成されますが、それ以前には存在しません。
私のXAMLコードの下:
<DataGrid ItemsSource ="{Binding Path=Underlying}" AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="462,145,0,203" Name="dataGrid3" Width="872" >
<DataGrid.Columns>
<DataGridTextColumn Header="In" Binding="{Binding FirstColumnName}" />
<DataGridTextColumn Header="InL" Binding="{Binding SecondColumnName}" />
<DataGridTextColumn Header="Total " Binding="{Binding ThirdColumnName}" />
</DataGrid.Columns>
</DataGrid>
そして、コードでは次のようになります
dataGrid3.ItemsSource = Underlying.DefaultView
ただし、データテーブルは実行時に生成されるため、設計時にバインドするものがないため、XAML バインディングは機能しないと思います。そうする方法はありますか?