void popup_Closed(object sender, EventArgs e) { Popup popup = (Popup)sender; // navigate up to the header to obtain the filter property name GridViewColumnHeader header = (GridViewColumnHeader)BaseWPFHelpers.FindElementOfTypeUp(popup, typeof(GridViewColumnHeader)); FilterColumn(header); popup.Closed -= new EventHandler(popup_Closed); }
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; }
/// <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; } } }