/// <summary> /// 生成收集变量控件 /// </summary> /// <param name="info"></param> /// <returns></returns> private UserControl CreateElement(VarInfoAttribute info) { UserControl control = null; switch (info.VarType) { case VarType.SingleString: control = new CWSingleTextControl(info.VarDefault); break; case VarType.MultiString: control = new CWMutilTextControl(info.VarDefault); break; } control.Name = info.VarName; this.RegisterName(control.Name, control); return(control); }
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (this.ViewModel.TemplateSelectIndex >= 0) { TemplateBase template = this.ViewModel.Templates[this.ViewModel.TemplateSelectIndex]; if (template == null || template.Vars == null || template.Vars.Count <= 0) { return; } ClearElement(); VarInfoAttribute varInfo = null; string val = string.Empty; //添加新模板变量 for (int i = 0; i < template.Vars.Count; i++) { //读取以往的状态 varInfo = template.Vars[i]; val = ApplicationGlobal.Instance.States.GetValue($"{template.Name}.{varInfo.VarName}"); if (!string.IsNullOrEmpty(val)) { varInfo.VarDefault = val; } RowDefinition def = new RowDefinition(); def.Height = new GridLength(30, GridUnitType.Auto); this.varPanel.RowDefinitions.Add(def); TextBlock title = new TextBlock(); title.Text = template.Vars[i].VarTitle; Grid.SetColumn(title, 0); Grid.SetRow(title, i); title.VerticalAlignment = VerticalAlignment.Center; this.varPanel.Children.Add(title); UserControl element = CreateElement(varInfo); Grid.SetColumn(element, 2); Grid.SetRow(element, i); this.varPanel.Children.Add(element); } } }