public FilterCellFactory(C1FlexGridFilter filter, C1FlexGrid flex) { _flex = flex; _gridFilter = filter; _baseCellFactory = flex.GetCellFactory(); _flex.SizeChanged += _flex_ScrollPositionChanging; _flex.ScrollPositionChanging += _flex_ScrollPositionChanging; Editor = new ColumnFilterEditor(); }
internal ColumnFilter(C1FlexGridFilter owner, Column column) { Owner = owner; Column = column; DataType = column.DataType; ConditionFilter = new ConditionFilter(DataType); ValueFilter = new ValueFilter(DataType); FilterType = FilterType.Automatic; }
private static void BindingColumnsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { try { var bindingColumns = e.NewValue as ObservableCollection<ColumnConfig>; if(bindingColumns != null) { var c1FlexGrid = d as C1FlexGrid; if(c1FlexGrid != null) { //List<string> list = new List<string> //{ // "Viewership", // "Sentiment", // "AssociationAvg", // "PreAwareness", // "PostAwarenessAvg" //}; C1FlexGridFilter filter = new C1FlexGridFilter(); c1FlexGrid.Columns.Clear(); foreach(var bindingColumn in bindingColumns) { var column = new Column { Header = bindingColumn.HeaderName, Binding = new Binding(bindingColumn.ColumnName), Width = new GridLength(bindingColumn.Width), Format = bindingColumn.FormatString, ToolTip = bindingColumn.HeaderDescription, HorizontalAlignment = HorizontalAlignment.Left, HeaderBackground = new SolidColorBrush(ColorConverter.ConvertFromString(bindingColumn.HeaderColorString) is Color ? (Color)ColorConverter.ConvertFromString(bindingColumn.HeaderColorString) : Colors.White) }; c1FlexGrid.Columns.Add(column); //if(list.Contains(bindingColumn.ColumnName)) //{ // filter.GetColumnFilter(column); // var cf13 = filter.GetColumnFilter(column); // cf13.FilterType = FilterType.Value; // filter.Apply(); //} } #region 设置双列头 //var ch = c1FlexGrid.ColumnHeaders; //ch.Rows.Add(new Row()); //ch[0, 0] = "省份城市"; //ch[1, 0] = "省名"; //ch[0, 1] = "省份城市"; //ch[1, 1] = "城市"; //// allow merging the first fixed row //ch.Rows[0].AllowMerging = true; #endregion //c1FlexGrid.AutoSizeColumns(0, c1FlexGrid.Columns.Count - 1, 0); c1FlexGrid.CellFactory = new FlexGridCellFactory(); filter.Owner = c1FlexGrid; } } } catch(Exception ex) { ShowMessage.Show("列绑定出错"); LogHelper.LogMessage(MethodBase.GetCurrentMethod().DeclaringType, LogHelper.LogLevel, "Failed to BindingColumnsChanged", ex); } finally { if(LogHelper.LogLevel == LogLevelEnum.Debug || LogHelper.LogLevel == LogLevelEnum.Info) { LogHelper.LogMessage(MethodBase.GetCurrentMethod().DeclaringType, LogHelper.LogLevel, "BindingColumnsChanged", null); } } }
public static void SetFlexGridFilter(DependencyObject obj, C1FlexGridFilter value) { obj.SetValue(C1FlexGridFilterService.FlexGridFilterProperty, value); }