void gvMapping_CurrentCellChanged(object sender, EventArgs e) { if (gvMapping.CurrentCell == null) { return; } string colName = gvMapping.Columns[gvMapping.CurrentCell.ColumnIndex].Name; if (colName == "ColSource") { _relationCell.SetDataSource(_config.AllPropertyNames); _relationCell.ShowComboBox(gvMapping.CurrentCell); } else if (colName == "ColTarget") { EntityRelationItem erf = gvMapping.Rows[gvMapping.CurrentCell.RowIndex].DataBoundItem as EntityRelationItem; if (erf != null) { _relationCell.SetDataSource(erf.TargetPropertyList); _relationCell.ShowComboBox(gvMapping.CurrentCell); } } }
/// <summary> /// 初始化属性 /// </summary> private void InitPropertys() { _lstProperty = new List <UIModelItem>(); List <ClrProperty> lstClrProperty = EntityConfig.GetAllMember <ClrProperty>(_classType, true); EntityConfig entity = new EntityConfig(_classType, DesignerInfo); Stack <EntityConfig> stkEntity = EntityConfig.GetEntity(entity, DesignerInfo); foreach (ClrProperty property in lstClrProperty) { UIModelItem item = new UIModelItem(property); EntityParamField finfo = EntityConfig.FindParamInfoByName(stkEntity, item.PropertyName); if (finfo != null) { bool isPK = EnumUnit.ContainerValue((int)finfo.EntityPropertyType, (int)EntityPropertyType.PrimaryKey); TableInfo tinfo = new TableInfo(isPK, finfo.ParamName, finfo.Length, finfo.ReadOnly, (DbType)EnumUnit.GetEnumInfoByName(typeof(DbType), finfo.DbType).Value); item.TabInfo = tinfo; } else { EntityRelationItem rel = EntityConfig.FindRelInfoByName(stkEntity, item.PropertyName); if (rel != null) { RelationInfo rinfo = new RelationInfo(rel.TargetProperty, rel.SourceProperty, rel.IsParent, rel.TypeName, rel.TypeFullName); item.RelInfo = rinfo; } } _lstProperty.Add(item); } }