2

我正在使用Extended WPF Toolkit™ Community Edition Datagrid,我希望在列上有一些自动筛选选项。付费版本(大约 1000 美元)包括此功能,但我的项目并不能证明这笔钱是合理的。

所以我为原始 WPF找到了这个很棒的Autofilter ExtensionDatagrid,但它与 Xceed(AKA Extended WPF Toolkit™ Community Edition)Datagrid 不兼容。

据我了解,自动过滤器只是一种位于 Datagrid 列标题之上的样式。我试图在 Xceed 的 Datagrid 访问上做同样的事情,ColumnManagerCell但它没有用,我想我只是错过了一些小东西。我试过了:

<Style TargetType="{x:Type xcdg:ColumnManagerCell}" >
    <Setter Property="Style" Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type filter:DataGridHeaderFilterControl}, ResourceId=DataGridHeaderFilterControlStyle}}" />
 </Style>

Resources,我也试过用了<Setter Property="Template"...,还是不行。ColumnManagerCell似乎 Xceeds “等效于” WPF Datagrid ColumnHeaderStyle

与原始 Datagrid 一起使用的代码是:

<DataGrid ColumnHeaderStyle="{StaticResource {ComponentResourceKey 
       TypeInTargetAssembly={x:Type filter:DataGridHeaderFilterControl}, 
       ResourceId=DataGridHeaderFilterControlStyle}}"

正如扩展程序的网站所指出的那样。

我也在考虑做类似的事情:

<ControlTemplate x:Key="FilterTemplate" TargetType="{x:Type xcdg:ColumnManagerCell}">
            <SomeControlInHere>
                <SomeControlInHere.Style>
                    <Style TargetType="{x:Type xcdg:ColumnManagerCell}" >
                        <Setter Property="Template" Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type filter:DataGridHeaderFilterControl}, ResourceId=DataGridHeaderFilterControlStyle}}" />
                    </Style>
                </SomeControlInHere.Style>
            </SomeControlInHere>
        </ControlTemplate>
        <Style TargetType="{x:Type xcdg:ColumnManagerCell}">
            <Setter Property="Template" Value="{StaticResource FilterTemplate}"/>
        </Style>

但我不确定目标是什么以及它最终将如何工作。

有谁知道如何将Autofilter Extension Style放在Xceed Extended WPF Toolkit™ Community Edition Datagrid上,并使两者一起工作?

4

0 回答 0