private void RefreshItemsCommand(object sender, ExecutedRoutedEventArgs e) { GridViewColumnHeader header = (GridViewColumnHeader)BaseWPFHelpers.FindElementOfTypeUp((MenuItem)e.OriginalSource, typeof(GridViewColumnHeader)); Popup popup = (Popup)BaseWPFHelpers.FindElementOfType(header, typeof(Popup)); GridViewColumnWithFilterAndSorter column = (GridViewColumnWithFilterAndSorter)header.Column; ReBuildFiltersList(column.SortPropertyName, (ObservableCollection <FilterItem>)popup.DataContext); //popup.IsOpen = false; }
private void RemoveFiltersCommand(object sender, ExecutedRoutedEventArgs e) { GridViewColumnHeader header = (GridViewColumnHeader)BaseWPFHelpers.FindElementOfTypeUp((MenuItem)e.OriginalSource, typeof(GridViewColumnHeader)); GridViewColumnWithFilterAndSorter column = (GridViewColumnWithFilterAndSorter)header.Column; Popup popup = (Popup)BaseWPFHelpers.FindElementOfType(header, typeof(Popup)); //foreach (var filterItem in column.FilterItems) //{ // filterItem.IsChecked = false; //} column.FilterItems = null; popup.IsOpen = false; }
public override void OnApplyTemplate() { base.OnApplyTemplate(); // ensure that the custom inactive style is applied if (FilterButtonInactiveStyle != null) { List <FrameworkElement> columnHeaders = BaseWPFHelpers.FindElementsOfType(this, typeof(GridViewColumnHeader)); foreach (FrameworkElement columnHeader in columnHeaders) { Button button = (Button)BaseWPFHelpers.FindElementOfType(columnHeader, typeof(Button)); if (button != null) { button.Style = FilterButtonInactiveStyle; } } } }
/// <summary> /// Handles the ShowFilter command to populate the filter list and display the popup /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ShowFilterCommand(object sender, ExecutedRoutedEventArgs e) { Button button = e.OriginalSource as Button; if (button != null) { // navigate up to the header GridViewColumnHeader header = (GridViewColumnHeader)BaseWPFHelpers.FindElementOfTypeUp(button, typeof(GridViewColumnHeader)); // then down to the popup Popup popup = (Popup)BaseWPFHelpers.FindElementOfType(header, typeof(Popup)); if (popup != null) { // find the property name that we are filtering GridViewColumnWithFilterAndSorter column = GetColumnFilters(header); // open the popup to display this list popup.Closed += new EventHandler(popup_Closed); popup.DataContext = column.FilterItems; popup.IsOpen = true; } } }