【发布时间】:2018-04-06 23:15:57
【问题描述】:
所以我有以下数据网格,绑定到一些动态数据:
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" ColumnHeaderStyle="{StaticResource timmy}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"></DataGridTextColumn>
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}"></DataGridTextColumn>
<DataGridTemplateColumn Header="Cars">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Cars}" AutoGenerateColumns="False" Margin="-10,-3,-10,-5" ColumnHeaderStyle="{StaticResource timmy2}">
<DataGrid.Columns>
<DataGridTextColumn Header="Brand" Binding="{Binding Brand}" Width="170"></DataGridTextColumn>
<DataGridTextColumn Header="Model" Binding="{Binding Model}" Width="170"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
这个原型运行良好,但我现在需要在运行时填充内部 DataGrid 的列。我知道我可以像这样以编程方式设置 DataGridTemplateColumn:
DataGridTemplateColumn gridColumn = new DataGridTemplateColumn();
gridColumn.Header = key;
gridColumn.Width = DataGridLength.Auto;
gridColumn.MinWidth = 160.0;
var dataGridFactory = new FrameworkElementFactory(typeof(DataGrid));
gridColumn.CellTemplate = new DataTemplate() { VisualTree = dataGridFactory };
this.resultsDataGrid.Columns.Add(gridColumn);
但是,由于我在与工厂打交道,我该如何设置列?
【问题讨论】:
标签: c# .net wpf datagrid datagridtemplatecolumn