/// <summary> /// 创建一个属性,如果存在则只修改值 /// </summary> /// <param name="value"></param> /// <param name="type"></param> /// <param name="name"></param> public void CreateProperty(object value, ParaItemEnum type, string name, bool isaddtoIPropertys = false) { if (IPropertys.Where(p => p.Name == name).Count() == 0) { IPropertys.Add(new PropertyIt() { Name = name, PIEnum = type, Value = value, }); if (isaddtoIPropertys) { scriptContent.Add(IPropertys.Last()); } if (name == "TaskPhones") { IPropertys.Last().Id = Guid.Empty.ToString(); } } else { IPropertyIt ipi = IPropertys.Where(p => p.Name == name).First(); ipi.Value = value; } }
/// <summary> /// 删除一个属性 /// </summary> /// <param name="propertyIt"></param> public void Del(IPropertyIt propertyIt) { if (this.iPropertys.Contains(propertyIt)) { this.iPropertys.Remove(propertyIt); } }
/// <summary> /// 添加一个属性 /// </summary> /// <param name="ipi"></param> /// <param name="isaddtoscriptcontent"></param> public void AddProperty(IPropertyIt ipi, bool isaddtoscriptcontent = false) { if (this.IPropertys.Contains(ipi) == false) { this.IPropertys.Add(ipi); if (isaddtoscriptcontent) { scriptContent.Add(IPropertys.Last()); } } }
/// <summary> /// 加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Load_Script(object sender, MouseButtonEventArgs e) { OpenFileDialog open = new OpenFileDialog(); open.Filter = "json文件 (*.json)|*.json"; if (open.ShowDialog() == true) { IPropertyIt propertyIt = this.IPropertys.Where(p => p.Id == Guid.Empty.ToString()).First(); this.IPropertys.Clear(); AddProperty(propertyIt); //scriptContent.LoadFromJson<ItemBox, BezierLine, ParatItem>(open.FileName); } }
/// <summary> /// 从json加载 /// </summary> /// <typeparam name="Ibox">iitembox的实际类型</typeparam> /// <typeparam name="Ibezier">连接线的实际类型</typeparam> /// <typeparam name="IParaitem">参数的实际类型</typeparam> /// <param name="file">json文件路径</param> public override void LoadFromJson <Ibox, IProperty, IParaitem>(string file) { using (FileStream fs = File.Open(file, FileMode.Open)) { byte[] datas = new byte[fs.Length]; fs.Read(datas, 0, datas.Length); string json = Encoding.UTF8.GetString(datas); ClearAll(true); Tools.ConvertJsonToLayout <Ibox, BezierLine, IParaitem, IProperty>(json, this); datas = null; json = null; } foreach (var item in itemboxs) { if (item.BoxType == ItemBoxEnum.MAIN) { this.mainIb = item as LineItemBox; } else if (item.BoxType == ItemBoxEnum.GET || item.BoxType == ItemBoxEnum.SET) { IPropertyIt ip = FindIPropertyById(item.Id); if (ip != null) { ip.PropertyChanged += item.PropertyValueChanged; } } else { TreeData td = dataTree.GetTreeDataByName(item.Name); if (td != null) { td.HalfClone(item); IItemboxLoadEvent?.Invoke(item, td.Data); } } } }
/// <summary> /// 添加一个属性 /// </summary> /// <param name="propertyIt"></param> public override void Add(IPropertyIt propertyIt) { this.iPropertys.Add(propertyIt); }