static void SetField(ChipItem item, LogicChip chip, string fieldName) { ElementOID oid = Element.GetOidByName(fieldName); Element element = chip.FindElement(oid); if (element != null) { var info = item.GetType().GetProperty(fieldName); info.SetValue(item, element.Text); item.SetLocked(fieldName, element == null ? false : element.Locked); } }
void GetField(ChipItem item, string fieldName) { ElementOID oid = Element.GetOidByName(fieldName); Element element = _chip.FindElement(oid); if (element != null && element.Locked) { return; } var info = item.GetType().GetProperty(fieldName); _chip.SetElement(oid, (string)info.GetValue(item)); }
public LogicChip GetContent() { ChipItem item = (ChipItem)propertyGrid1.SelectedObject; if (_chip == null) { _chip = new LogicChip(); } if (item != null) { GetField(item, "PrimaryItemIdentifier"); GetField(item, "OwnerInstitution"); GetField(item, "SetInformation"); } return(_chip); }
private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e) { ChipItem item = sender as ChipItem; // TODO: 更新 LogicChip // 进一步反馈到调用 Dialog 的窗口,更新列表显示。比如添加星号表示修改过 }