void ShowColumnChooser()
 {
     if (viewModel.ShowColumnChooser && viewModel.UseDefaultColumnChooser)
     {
         chooserWindow.Visibility = System.Windows.Visibility.Visible;
     }
     else
     {
         if (!viewModel.ShowColumnChooser)
         {
             return;
         }
         var visibleColumns = this.AssociatedObject.dataGrid.Columns;
         ObservableCollection <OrderInfo> totalColumns     = GetColumnsDetails(visibleColumns);
         CustomColumnChooserViewModel     chooserViewModel = new CustomColumnChooserViewModel(totalColumns);
         CustomColumnChooser ColumnChooserView             = new CustomColumnChooser(chooserViewModel);
         ColumnChooserView.Owner  = Application.Current.MainWindow;
         chooserWindow.Visibility = System.Windows.Visibility.Collapsed;
         if ((bool)ColumnChooserView.ShowDialog())
         {
             ClickOKButton(chooserViewModel.ColumnCollection, this.AssociatedObject.dataGrid);
         }
         viewModel.ShowColumnChooser = false;
     }
 }
 public CustomColumnChooser(CustomColumnChooserViewModel viewModel)
 {
     InitializeComponent();
     this.DataContext = viewModel;
 }