ResourceDictionaries

时间:2015-11-02 15:21:01

标签: wpf xaml datagrid

这是一种设计问题而不是问题。

在我的应用程序视图中,我有一个DataGrid,其中包含很多列。 columndefinitions的代码行高于1000.这通过非常大的DataGridTemplateColumn - 具有不同单元格和CellEditingTemplate s的定义等等。

由于有几个人同时在这个视图上工作,我们经常需要合并,我想知道是否有办法让这个变得更简单。

我现在的想法是将一些(或所有)列移到ResourceDictionary

但是,如果我将所有列定义移动到相同的ResourceDictionary,我仍然遇到问题,如果我们想要签入TFS,我们经常需要合并。

现在我考虑将每个DataGridTemplateColumn移动到单独的ResourceDictionary,但我不确定这是否是解决此问题的好方法。你怎么看?有什么建议吗?

一些DataGridTemplateColumn - 定义超过100行。

1 个答案:

答案 0 :(得分:0)

您可以将列作为这样的资源 -

<DataGridTemplateColumn x:Key="SharedColumn1" x:Shared="False" Header="1" Width="Auto">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock  Text="Hello"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

然后在你的数据网格中使用它......就像这样......

 <DataGrid ItemsSource="{Binding}">
        <DataGrid.Columns>
            <StaticResource ResourceKey="SharedColumn1"/>
            <DataGridTemplateColumn Header="YourCustomColumn"/>
        </DataGrid.Columns>
 </DataGrid>

另外,请记住,列实际上是一个包含数据网格的集合,因此,如果有许多列需要重用,则可以实际创建包含所有公共列的基本网格,然后使用控件中的基本网格,在您的控件中,您可以根据需要添加特定列。