Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/GridDemo.Wpf/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/GridDemo.Wpf/Modules/ColumnChooser.xaml.cs

using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;
using System.Windows.Input;
using System.Windows.Threading;

namespace GridDemo {
    [CodeFile("ModuleResources/ColumnChooserClasses.(cs)")]
    public partial class ColumnChooser : GridDemoModule {
        public static readonly DependencyProperty ColumnChooserTypeProperty = DependencyProperty.Register("ColumnChooserType", typeof(ColumnChooserType), typeof(ColumnChooser),
            new PropertyMetadata(ColumnChooserType.Default, new PropertyChangedCallback(OnColumnChooserTypeChanged)));

        static void OnColumnChooserTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((ColumnChooser)d).ColumnChooserTypeChanged((ColumnChooserType)e.NewValue);
        }

        public ColumnChooserType ColumnChooserType {
            get { return (ColumnChooserType)GetValue(ColumnChooserTypeProperty); }
            set { SetValue(ColumnChooserTypeProperty, value); }
        }

        public ColumnChooser() {
            InitializeComponent();
            UpdateToggleButtonContent();
        }

        protected override void RaiseIsPopupContentInvisibleChanged(DependencyPropertyChangedEventArgs e) {
            base.RaiseIsPopupContentInvisibleChanged(e);
            if(!IsPopupContentInvisible) {
                Dispatcher.BeginInvoke(new Action(gridView.ShowColumnChooser), DispatcherPriority.Render, null);
            }
        }

        void columnChooser_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) {
            e.Handled = true;
        }

        void ColumnChooserTypeChanged(ColumnChooserType newChooserType) {
            if(newChooserType == ColumnChooserType.Default) {
                columnChooser.View = null;
                grid.View.ClearValue(GridViewBase.ColumnChooserFactoryProperty);
            }
            else {
                columnChooser.View = gridView;
                grid.View.ColumnChooserFactory = new DemoColumnChooser(columnChooser);
                gridView.ShowColumnChooser();
            }
        }

        private void showHideButton_Toggle(object sender, RoutedEventArgs e) {
            UpdateToggleButtonContent();
        }

        void UpdateToggleButtonContent() {
            showHideButton.Content = showHideButton.IsChecked.Value ? "Hide Column Chooser" : "Show Column Chooser";
        }
        protected override object GetModuleDataContext() {
            base.GetModuleDataContext();
            return this;
        }

        private void customColumnChooserExpander_Expanded(object sender, RoutedEventArgs e) {
            customColumnChooserExpander.Header = "Hide Column Chooser";
        }

        private void customColumnChooserExpander_Collapsed(object sender, RoutedEventArgs e) {
            customColumnChooserExpander.Header = "Show Column Chooser";
        }
    }
}