本文整理汇总了C#中Com.Aote.ObjectTools.ObjectList.CopyFrom方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectList.CopyFrom方法的具体用法?C# ObjectList.CopyFrom怎么用?C# ObjectList.CopyFrom使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Com.Aote.ObjectTools.ObjectList
的用法示例。
在下文中一共展示了ObjectList.CopyFrom方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NewPropertyValue
public void NewPropertyValue(string propertyName)
{
//有属性默认值
var p = (from ps in PropertySetters where ps.PropertyName == propertyName select ps).FirstOrDefault();
if (p != null && p.Default != null)
{
//设置默认属性结果
SetPropertyValue(propertyName, p.Default, true, true);
//如果默认属性是列表,调用列表的New过程
if (p.Default is BaseObjectList)
{
(p.Default as BaseObjectList).New();
}
}
//有默认对象,复制默认对象
else if (p != null && p.DefaultObject != null)
{
if (p.DefaultObject is GeneralObject)
{
//复制默认对象到新对象
GeneralObject go = p.DefaultObject as GeneralObject;
GeneralObject ngo = new GeneralObject();
ngo.CopyFrom(go);
p.Object.SetPropertyValue(p.PropertyName, ngo, false, true);
}
else if (p.DefaultObject is ObjectList)
{
//复制默认对象到新对象
ObjectList go = p.DefaultObject as ObjectList;
ObjectList ngo = new ObjectList();
ngo.CopyFrom(go);
p.Object.SetPropertyValue(p.PropertyName, ngo, false, true);
}
}
else
{
//如果属性是集合
if (GetProperty(propertyName).PropertyType == typeof(BaseObjectList))
{
//如果属性存在,清空集合
BaseObjectList old = (BaseObjectList)this.GetPropertyValue(propertyName);
if (old != null)
{
old.New();
}
//否则,无不置空标记,设置一个空集合
else if (!NotEmpty)
{
SetPropertyValue(propertyName, new ObjectList(), true);
}
}
else
{
SetPropertyValue(propertyName, null, true, true);
}
}
}
示例2: SetCollectionProperty
//设置列表属性,设置时,将监听其IsModified属性改变事件
private void SetCollectionProperty(string key, BaseObjectList ol)
{
//如果有默认对象,且要设置的列表为空,采用默认对象的复制结果
var p = (from ps in PropertySetters where ps.PropertyName == key select ps).FirstOrDefault();
if (p != null && p.DefaultObject != null && (ol == null || ol.Count == 0))
{
//复制默认对象到新对象
ObjectList go = p.DefaultObject as ObjectList;
ObjectList ngo = new ObjectList();
ngo.CopyFrom(go);
ol = ngo;
}
SetPropertyValue(key, ol, true);
ol.Watch("IsModified", ol_PropertyChanged);
}