在 xaml 中创建的 DataGrid 列 - 如何以编程方式填充?
DataGrid Columns created in xaml - how to fill programmatically?
我在 xaml 中创建了一个 DataGrid。代码是这样的:
<DataGrid x:Name="myDataGrid" VerticalAlignment="Top" Height="305" Margin="36,157,-36,0" AutoGeneratingColumn="dgOverviewMain_AutoGeneratingColumn" Loaded="dgOverviewMain_Loaded" MouseUp="dgOverviewMain_MouseUp" BorderBrush="{x:Null}" Background="#FFEDFDFF">
<DataGrid.Columns>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col2"/>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col3"/>
</DataGrid.Columns>
</DataGrid>
现在我想使用 C# 以编程方式添加行。
DataRow tempRow = dt_source.Rows[1]; //Get row from DataTable
myDataGrid.Items.Add(tempRow); //Insert tempRow to myDataGrid
tempRow.ItemsArray 包含我的数据,但上面的行仅生成空白行。
我做错了什么?
您的 <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/>
没有定义应该在内容中显示的内容。因此没有任何东西绑定到每个单元格。
通过 Binding="{x:Null}"
,您明确表示希望它为空白。
替换为Binding="{Binding ColumnName}"
我在 xaml 中创建了一个 DataGrid。代码是这样的:
<DataGrid x:Name="myDataGrid" VerticalAlignment="Top" Height="305" Margin="36,157,-36,0" AutoGeneratingColumn="dgOverviewMain_AutoGeneratingColumn" Loaded="dgOverviewMain_Loaded" MouseUp="dgOverviewMain_MouseUp" BorderBrush="{x:Null}" Background="#FFEDFDFF">
<DataGrid.Columns>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col2"/>
<DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col3"/>
</DataGrid.Columns>
</DataGrid>
现在我想使用 C# 以编程方式添加行。
DataRow tempRow = dt_source.Rows[1]; //Get row from DataTable
myDataGrid.Items.Add(tempRow); //Insert tempRow to myDataGrid
tempRow.ItemsArray 包含我的数据,但上面的行仅生成空白行。
我做错了什么?
您的 <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/>
没有定义应该在内容中显示的内容。因此没有任何东西绑定到每个单元格。
通过 Binding="{x:Null}"
,您明确表示希望它为空白。
替换为Binding="{Binding ColumnName}"