static void OnGridColumnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            CustomTemplateSelector cts = CustomTemplateSelector.Instance;
            GridColumn             gc  = e.NewValue as GridColumn;
            Type t = gc.FieldType;

            switch (t.Name)
            {
            case "DateTime": {
                cts.MainTemplate = (DataTemplate)(d as FilterWindow).Resources["DateTimeData"];
                (d as FilterWindow).cmbOperationsH.ItemsSource = (d as FilterWindow).NumericConditions;
                (d as FilterWindow).cmbOperationsL.ItemsSource = (d as FilterWindow).NumericConditions;
                break;
            }

            case "String": {
                cts.MainTemplate = (DataTemplate)(d as FilterWindow).Resources["RegularData"];
                (d as FilterWindow).cmbOperationsH.ItemsSource = (d as FilterWindow).StringConditions;
                (d as FilterWindow).cmbOperationsL.ItemsSource = (d as FilterWindow).StringConditions;
                break;
            }

            default: {
                cts.MainTemplate = (DataTemplate)(d as FilterWindow).Resources["RegularData"];
                (d as FilterWindow).cmbOperationsH.ItemsSource = (d as FilterWindow).NumericConditions;
                (d as FilterWindow).cmbOperationsL.ItemsSource = (d as FilterWindow).NumericConditions;
            }
            break;
            }
        }
 public CustomTemplateSelector()
 {
     Instance = this;
 }