Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }