如何在WPF工具包datagrid“过滤器扩展”中保存过滤器值?

时间:2011-08-03 18:41:27

标签: c# wpf wpftoolkit

我正在使用我在“Automatic WPF Toolkit DataGrid Filtering”文章下找到的代码(VS2008),该代码非常有效。它被实现为数据网格标题的新“样式”,而不是数据网格本身的扩展。我的问题是如何保存输入到这些过滤器框中的值,然后使用它们重新输入这些值?

如果不可能,我将如何修改源代码(可从上面的链接获得)到过滤器(WPF新手)。

谢谢,

恩里科

2 个答案:

答案 0 :(得分:2)

没有太多时间深入代码分析,但您可以在提供的代码中找到:

Generic.xaml line 55,您会找到以下代码:

<Setter Property="Template">

此代码实际上设置了GridColumn的模板。在 XAML的中间,您会找到DelayTextBox类型声明。这是你的关键!

DelayTextBox类型的OnTextChanged(TextChangedEventArgs e)开始搜索。

再次提示:

DataGridColumnFilter.cs中,您会找到以下属性:

public FilterData FilterCurrentData
 {
     get { return (FilterData)GetValue(FilterCurrentDataProperty); }
     set { SetValue(FilterCurrentDataProperty, value); }
 }

将断点放到get/set,运行程序并过滤列。您将获得明确的callstack愿景,因此可以根据您的应用设计决定在哪里可以获取文本框的实际价值。

修改

查看FilterData类型,我认为它包含您需要的信息。

希望这有帮助。

问候。

答案 1 :(得分:0)

您可以将其保存到UserSettings。我会为每个过滤条目创建一个用户条目,并在加载时填充过滤器。