private void OnTemplateItemChanged() { var template = new ParameterItem() { IsTemplate = true }; template.PropetyChangedEvent += OnTemplateItemChanged; _parameterList.Add(template); }
public void ImportConfigFromFile(string filePath) { using (var fs = new FileStream(filePath, FileMode.Open)) { using (var sr = new StreamReader(fs)) { var content = sr.ReadToEnd(); JObject jObj = JsonConvert.DeserializeObject(content) as JObject; TemplateText = jObj["Template"].ToString(); var paramArray = jObj["Parameters"] as JArray; Comment = jObj["Comment"].ToString(); var templateItem = ParameterList.FirstOrDefault(x => x.IsTemplate); ParameterList.Clear(); foreach (var jItem in paramArray) { if (jItem["DataType"].ToString().ToLower() == "array") { var tempParameter = new ParameterItem() { PropertyName = jItem["Key"].ToString(), DataType = "Array" }; var tempArrayItem = tempParameter.ValueList.FirstOrDefault(); tempParameter.ValueList.Clear(); tempParameter.ValueList.AddRange((jItem["Values"] as JArray).Select(x => new ArrayItem() { PropertyValue = x.ToString() }).ToList()); tempParameter.ValueList.Add(tempArrayItem); ParameterList.Add(tempParameter); } else { ParameterList.Add(new ParameterItem() { PropertyName = jItem["Key"].ToString(), PropertyValue = jItem["Value"].ToString() }); } } ParameterList.Add(templateItem); } } }
public MainViewModel() { //var temp = JsonConvert.SerializeObject("<test>\"'/\\@#$%^&*()</asdfas>"); TemplateText = @"<!-- 单属性示例 --> Program Name: <#= P[""ProgramName""] #> <!-- 数组示例 --> ConfigArray: <# foreach(var item in (P[""TestArray""] as List<string>)) { #> - <#=item #> <# } #> <!-- 复杂数组示例 --> ComplexArray: <# foreach(var item in (P[""ComplexArray""] as List<string>)) { var items=item.Split(new string[] { ""|||"" }, StringSplitOptions.None); #> <config Name=""<#=items[0] #>"" Value=""<#=items[1] #>"" /> <# } #> Config End; "; ParameterList.Add(new ParameterItem() { PropertyName = "ProgramName", PropertyValue = "TestProgramName" }); var arrayParam = new ParameterItem() { PropertyName = "TestArray", DataType = "Array", PropertyValue = "AAAAA###BBBBB###CCCCC" }; ParameterList.Add(arrayParam); var complexArray = new ParameterItem() { PropertyName = "ComplexArray", DataType = "Array", PropertyValue = "AAA|||NBB###BB|||BBB###CC|||DD" }; ParameterList.Add(complexArray); var templateItem = new ParameterItem() { IsTemplate = true }; templateItem.PropetyChangedEvent += OnTemplateItemChanged; ParameterList.Add(templateItem); RenderCommand = new DelegateCommand <object>(OnRender); SaveCommand = new DelegateCommand <object>(OnSave); ImportCommand = new DelegateCommand <object>(OnImport); DeletePropertyCommand = new DelegateCommand <object>(obj => { try { if (obj is ParameterItem) { ParameterList.Remove(obj as ParameterItem); } } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error); } }); if (Start.Args.Any()) { ImportConfigFromFile(Start.Args.First()); } }