如何清除按钮单击时在wpf xam数据网格中的某些列上应用的过滤器

时间:2016-04-22 11:59:26

标签: c# .net wpf xaml xamdatagrid

我希望在按钮上单击我的wpf xam数据网格中某些列应用的任何过滤器应该清除。 我想要像

这样的东西

recordfilter.clear()

但我不能在 RecordFilterChanged 事件之外使用它 所以如果我可以在按钮点击事件上做这样的事情,这将解决我的问题。

1 个答案:

答案 0 :(得分:0)

最后,我设法通过创建xamDataGrid的行为来解决此问题。以下代码解决了我的问题

public static readonly DependencyProperty IsFiltersClearedProperty = DependencyProperty.Register("IsFiltersCleared", typeof(bool), typeof(XamDataGridClearFilters), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, ClearFilters));



 public bool IsFiltersCleared
        {
            get { return (bool)GetValue(IsFiltersClearedProperty); }
            set { SetValue(IsFiltersClearedProperty, value); }
        }
    private static void ClearFilters(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        if (!(bool)e.NewValue)
        {
            return;
        }
        XamDataGridClearFilters gridExtender = (XamDataGridClearFilters)d;
        XamDataGrid dataGrid = (XamDataGrid)gridExtender.AssociatedObject;
        dataGrid.ClearCustomizations(CustomizationType.RecordFilters);
        gridExtender.IsFiltersCleared = false;
    }

}