最初我使用AutoGeneratedColumns = True生成一个dataGrid,从dataTable获取值。但是,每个数据集的列数是固定的,我想相应地命名它们,因此在代码中命名它们,但如果在我修改代码时没有选择Tab,那么我得到的错误是Index超出范围。
我决定使用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绑定对我不起作用,因为我的数据表是在运行时生成的,因此在设计时没有任何东西可以绑定。 任何想法怎么做?
答案 0 :(得分:0)
我认为您不应该设置ItemsSource属性,而是使用DataGrid的DataContext属性并在XAML中使用模板,如下面的问题:WPF: Binding to DataGrid