C# 使用DataGrid的WPF UserControl,在XAML中添加额外的列
我正在尽可能地重用我正在编写的XAML 现在,我想在数据网格中显示我的对象。我的对象通过遗产共享一些共同属性。因此,我想创建一个带有网格的UserControl,并为每个对象的公共属性定义一些列。看起来是这样的:C# 使用DataGrid的WPF UserControl,在XAML中添加额外的列,c#,wpf,xaml,datagrid,user-controls,C#,Wpf,Xaml,Datagrid,User Controls,我正在尽可能地重用我正在编写的XAML 现在,我想在数据网格中显示我的对象。我的对象通过遗产共享一些共同属性。因此,我想创建一个带有网格的UserControl,并为每个对象的公共属性定义一些列。看起来是这样的: <UserControl Name="MyCustomGrid"> <Grid> <DataGrid> <!-- Common Settings --> ..
<UserControl Name="MyCustomGrid">
<Grid>
<DataGrid>
<!-- Common Settings -->
...
<!-- /Common Settings -->
<DataGrid.Columns>
<ADataGridColumn Name="CommonProperty1"/>
<ADataGridColumn Name="CommonProperty2"/>
...
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>
...
但我似乎无法在DataGrid.Columns下插入ContentControl
也许这不是我们要走的路
感谢您的帮助您可以这样定义列;包括不同类型
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn/>
<DataGridCheckBoxColumn/>
<DataGridComboBoxColumn/>
<DataGridHyperlinkColumn/>
<DataGridTextColumn/>
</DataGrid.Columns>
</DataGrid>
但是为什么要将其封装在UserControl
中,而不是对DataGrid
实例本身进行封装呢?我建议为每个DataGrid
指定列,因为将其放入UserControl
中需要大量工作。或者在每个DataGrid
都有相同的样式时使用样式,显示简单的附加列可能很容易,但以后可能需要范围、约束和验证,这将是无止境的工作。我认为OP关注的是“在运行时添加列”,现在他不关心列类型。@badaboom我知道不同的列类型。问题是,我有3个非常相似的网格,我必须对常用设置(而不仅仅是样式)进行3次修改。自动生成似乎并不理想,因为我有自定义列,并且希望列按特定顺序排列。我心里想的似乎不可能就这样。我将尽可能多地使用模板,以便DataGrids的XAML尽可能简洁。谢谢
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn/>
<DataGridCheckBoxColumn/>
<DataGridComboBoxColumn/>
<DataGridHyperlinkColumn/>
<DataGridTextColumn/>
</DataGrid.Columns>
</DataGrid>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!--Content-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<!--Content-->
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>