private void QueryNameChanged(DependencyPropertyChangedEventArgs s) { if (DesignerProperties.GetIsInDesignMode(this) || s.NewValue == null) { return; } if (!Finder.IsFindable(s.NewValue)) { Common.VoteCollapsed(this); return; } Common.VoteVisible(this); Settings = Finder.GetQuerySettings(s.NewValue); Description = DynamicQueryServer.GetQueryDescription(s.NewValue); if (Settings.SimpleFilterBuilder != null) { SimpleFilterBuilder = Settings.SimpleFilterBuilder(Description); } tokenBuilder.Token = null; tokenBuilder.SubTokensEvent += tokenBuilder_SubTokensEvent; entityColumn = Description.Columns.SingleOrDefaultEx(a => a.IsEntity); if (entityColumn == null) { throw new InvalidOperationException("Entity Column not found on {0}".FormatWith(QueryUtils.GetKey(QueryName))); } }
public void Reinitialize(IEnumerable <FilterOption> filters, List <ColumnOption> columns, ColumnOptionsMode columnOptionsMode, List <OrderOption> orders) { if (qd == null) { qd = DynamicQueryServer.GetQueryDescription(QueryName); } ColumnOptions.Clear(); ColumnOptions.AddRange(columns); ColumnOptionsMode = columnOptionsMode; FilterOptions.Clear(); FilterOptions.AddRange(filters); FilterOption.SetFilterTokens(FilterOptions, qd); OrderOptions.Clear(); OrderOptions.AddRange(orders); OrderOption.SetOrderTokens(OrderOptions, qd); }
void SearchControl_Loaded(object sender, RoutedEventArgs e) { this.Loaded -= SearchControl_Loaded; if (DesignerProperties.GetIsInDesignMode(this) || QueryName == null) { return; } if (qd == null) { qd = DynamicQueryServer.GetQueryDescription(QueryName); } if (FilterColumn.HasText()) { FilterOptions.Add(new FilterOption { ColumnName = FilterColumn, Operation = FilterOperation.EqualTo, Frozen = true, }.Bind(FilterOption.ValueProperty, new Binding("DataContext" + (FilterRoute.HasText() ? "." + FilterRoute : null)) { Source = this })); ColumnOptions.Add(new ColumnOption(FilterColumn)); ColumnOptionsMode = ColumnOptionsMode.Remove; } FilterOption.SetFilterTokens(FilterOptions, qd); AutomationProperties.SetName(this, QueryUtils.GetQueryUniqueKey(QueryName)); Search(); foreach (var item in FilterOptions) { item.BindingValueChanged += new DependencyPropertyChangedEventHandler(item_BindingValueChanged); } }