Ejemplo n.º 1
0
 private void prepareColumnFilters()
 {
     if (IsHeaderFilterVisible)
     {
         for (int i = 0; i < this.Columns.Count; i++)
         {
             DataGridColumnHeader header = GetColumnHeaderFromColumn(this.Columns[i]);
             CollectionGridColumn idgc   = this.Columns[i] as CollectionGridColumn;
             if (header != null && idgc != null)
             {
                 ContentControl cc = header.FindVisualChildByName <ContentControl>("columnFilterHost");
                 if (cc != null && idgc.ColumnFilterControl != null)
                 {
                     var colFlt = idgc.ColumnFilterControl;
                     colFlt.SetBinding(FrameworkElement.VisibilityProperty, new Binding("IsSqlEditMode")
                     {
                         Source    = this.Collection,
                         Converter = new Converters.BoolToVisibilityReverse()
                     });
                     cc.Content = colFlt;
                 }
                 Button             closeButton      = header.FindVisualChildByName <Button>("btnClose");
                 var                column           = this.Columns[i];
                 RoutedEventHandler closeButtonClick = async(s, e) => {
                     if (this.Columns.Count == 1)
                     {
                         MessageBox.Show("Can't remove last column");
                     }
                     else
                     {
                         this.Columns.Remove(column);
                         if (this.Collection != null)
                         {
                             await this.Collection.RemoveColumn(idgc.PropertyDefinition.Path);
                         }
                     }
                 };
                 closeButton.Click -= closeButtonClick;
                 closeButton.Click += closeButtonClick;
             }
         }
     }
     HideShowFilterOnHeaders(!this.IsHeaderFilterVisible);
     _columnFiltersPrepared = true;
 }
Ejemplo n.º 2
0
 public void Init()
 {
     this.Columns.Clear();
     if (this.Collection != null)
     {
         foreach (var column in this.Collection.Columns)
         {
             if (column.IsNotEmpty())
             {
                 var col = new CollectionGridColumn(this, column);
                 if (column.Path == "id")
                 {
                     col.MinWidth = 80;
                 }
                 this.Columns.Add(col);
                 this.Collection.Filter.FieldsFilter.SetFieldFilterPropertyType(column.Path, column.Type);
             }
         }
     }
     this.ForceColumnFiltersRerender();
 }