private void PopLostFocus(object sender, RoutedEventArgs e) { var stackPanel = sender as StackPanel == null ? FindControl.FindParent <StackPanel>((FrameworkElement)sender) : (StackPanel)sender; if (stackPanel == null) { return; } var popup = stackPanel.Parent as Popup; if (popup == null) { return; } if (popup.IsMouseOver) { return; } var currentFocueedElement = FocusManager.GetFocusedElement(popup); if (currentFocueedElement == null) { popup.IsOpen = false; } }
private Popup GetPopupParentFromFilterView(object sender) { var button = sender as Button; if (button == null) { return(null); } var filterView = FindControl.FindParent <FilterView>((ContentControl)sender); if (filterView == null) { return(null); } var stackPanel = FindControl.FindParent <StackPanel>(filterView); if (stackPanel == null) { return(null); } var popup = stackPanel.Parent as Popup; return(popup); }
private void OnPopupButtonClick(object sender, RoutedEventArgs e) { var button = sender as Button; if (button == null) { return; } var popup = GetPopupParentFromFilterView(button); if (popup == null) { return; } var mainGrid = FindControl.FindParent <ExtendedDatagridControl>(popup); var currentColumn = _currentColumn as ExtendedTemplateColumn; switch (button.Name) { case "btnOk": mainGrid.FilterHelper.SetColumnFilter(); if (currentColumn != null) { currentColumn.IsFiltered = mainGrid.FilterHelper.IsCurrenColumnFiltered(); } break; case "btnCancel": break; case "btnClear": mainGrid.FilterHelper.ClearColumnFilter(mainGrid.FilterHelper.CurrentColumnInfo.Column.FieldName); mainGrid.FilterHelper.ApplyFilter(); if (currentColumn != null) { currentColumn.IsFiltered = false; } break; } popup.IsOpen = false; }
private void AutoFilterMouseDown(object sender, MouseButtonEventArgs e) { var columnHeader = FindControl.FindParent <DataGridColumnHeader>((ContentControl)sender); _currentColumn = columnHeader.Column as ExtendedTemplateColumn; if (_currentColumn == null) { return; } var popup = FindControl.FindChild <Popup>(columnHeader, "popupColumnFilter"); if (popup == null) { return; } popup.IsOpen = true; var popupSize = new Size(popup.ActualWidth, popup.ActualHeight); var position = new Point { X = columnHeader.ActualWidth - 19, Y = columnHeader.ActualHeight }; popup.PlacementRectangle = new Rect(position, popupSize); var mainGrid = FindControl.FindParent <ExtendedDatagridControl>(popup); mainGrid.FilterHelper.CurrentColumnInfo = new Model.ColumnInfo() { Column = _currentColumn }; var filterViewControl = FindControl.FindChild <FilterView>(popup.Child, "ColumnValuesList"); filterViewControl.ListItems = mainGrid.FilterHelper.GetDistinctColumnValues(); InitializeFilterView(filterViewControl); }