0

最初,我使用 AutoGeneratedColumns = True 从数据表中获取值来生成数据网格。但是,每个数据集的列数是固定的,我想相应地命名它们,因此在代码中命名它们但是如果在我运行代码时没有选择 Tab,那么我收到一个错误,即索引超出范围.

我决定做 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 绑定对我不起作用,因为我的数据表是在运行时生成的,所以在设计时没有什么可以绑定的。任何想法如何做到这一点?

4

1 回答 1

0

我认为您不应设置 ItemsSource 属性,而应使用 DataGrid 的 DataContext 属性并在 XAML 中使用模板,如此处的问题所示:WPF: Binding to DataGrid

于 2013-10-23T13:03:57.940 回答