private void AddItemToBasketGrid(IDescription itemDescription) { Grid newItemGrid = new Grid(); newItemGrid.Margin = new Thickness(5, 0, 0, 10); newItemGrid.Height = 50; var imageColumn = new ColumnDefinition(); imageColumn.Width = new GridLength(50); newItemGrid.ColumnDefinitions.Add(imageColumn); newItemGrid.ColumnDefinitions.Add(new ColumnDefinition()); ElementRenderer.VisualizeImageInPanel( newItemGrid, itemDescription.Name, App.FileManager.GetBaseDirectory(itemDescription.GetType().Name)); var textBlock = new TextBlock(); textBlock.Text = itemDescription.Name; textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Center; textBlock.Margin = new Thickness(5, 0, 0, 0); textBlock.FontSize = 15; Grid.SetColumn(textBlock, 1); newItemGrid.Children.Add(textBlock); this.BasketElementsStackPanel.Children.Add(newItemGrid); }
/// <summary> /// 解释逻辑非运算表达式. /// </summary> /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param> /// <returns></returns> public override string Parsing(ref List <IDbDataParameter> DbParameters) { LogicNotDescription logicNot = (LogicNotDescription)this.Description; List <Type> allowTypes = new List <Type>(new Type[] { typeof(FieldDescription), typeof(ExpDescription), typeof(FunDescription), typeof(GroupDescription) }); IDescription desObject = logicNot.Expression; Type expType = desObject.GetType(); if (!(allowTypes.Contains(expType))) { throw new NotSupportedException(string.Format("Can not use this description object: {0} for logical not expression.", expType.FullName)); } desObject.DescriptionParserAdapter = this.Adapter; string buffer = desObject.GetParser().Parsing(ref DbParameters); if (buffer[0] == (char)0x20) { return(string.Format(" NOT{0}", buffer)); } else { return(string.Format(" NOT {0}", buffer)); } }
protected override bool Matches(string item, IDescription mismatchDescription) { if (mismatchDescription.GetType() != typeof(NullDescription)) { throw new Exception("Expected null description"); } return(_match(item)); }
/// <summary> /// 通过 Descript 对象获取其对应的解释器。 /// </summary> /// <param name="desObj">命令描述对象。</param> /// <returns></returns> public ParserBase GetParserByObject(IDescription desObj) { ParserBase parser = Get(desObj.GetType()); if (parser != null) { parser.Description = desObj; } return(parser); }