public DBInterfaceItemBase CreateInstanceEx(Type type) { DBInterfaceItemBase dbItem = CreateInstance(type); TypeCurrent = type; drbtnAddColletion.Text = string.Format("Добавить ({0})", dbItem.TypeName); treeExist.ExpandAll(); return(dbItem); }
/// <summary> /// Рекурсивный метод определения наивысшего родителя записи. /// </summary> private DBInterfaceItemBase GetTopParent(DBInterfaceItemBase dbItem, int level) { if (dbItem.Parent != null) { return(GetTopParent(dbItem.Parent, level + 1)); } else { return(dbItem); } }
/// <summary> /// Рекурсивный метод определения уровня положения записи. /// </summary> private int GetLevel(DBInterfaceItemBase dbItem, int level) { if (dbItem.Parent != null) { return(GetLevel(dbItem.Parent, level + 1)); } else { return(level); } }
/// <summary> /// Обработчик события на изменение свойств ItemBase. /// </summary> void ItemBase_PropertyChanged(object sender, EventArgs e) { DBInterfaceItemBase item = sender as DBInterfaceItemBase; if (item != null) { FieldName = item.FieldName; Caption = item.Caption; TypeName = item.TypeName; ImageIndex = item.ImageIndex; } }
public TableMemberInfo(string fieldName, Type propertyType = null, string typeName = "", string caption = "", bool isXPCollection = false, DBInterfaceItemBase dbItem = null, bool isUsed = false) : this() { FieldName = fieldName; PropertyType = propertyType; TypeName = typeName; Caption = caption; IsXPCollection = isXPCollection; Item = dbItem; IsUsed = isUsed; }
/// <summary> /// Автоматическое создание элемента коллекции. /// </summary> public DBInterfaceItemBase CreateInstance(TableMemberInfo tmInfo) { DBInterfaceItemBase item = null; TableMemberInfo infoParent = null; TableMemberInfo infoSelect = null; int level = tmInfo.GetLevel(); for (int i = 0; i < level; i++) { infoParent = tmInfo.GetParent(level - i); infoSelect = MemberExists.FindInfo(infoParent.Parent); if (MemberExists.FindInfo(infoParent) == null) { item = DBInterface.CreateInstance(infoParent.PropertyType, infoParent, infoSelect, treeExist, MemberExists); } } return(item); }