/// <summary> /// 单选 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnSingleClick(object sender, ItemClickArgs e) { if (e.Data is Row srcRow) { _owner.Value = srcRow["name"]; if (_srcIDs != null) { // 同步填充 object tgtObj = _owner.Owner.Data; Row tgtRow = tgtObj as Row; for (int i = 0; i < _srcIDs.Length; i++) { string srcID = _srcIDs[i]; string tgtID = _tgtIDs[i]; if (srcRow.Contains(srcID)) { if (tgtRow != null) { if (tgtRow.Contains(tgtID)) { tgtRow[tgtID] = srcRow[srcID]; } } else { var pi = tgtObj.GetType().GetProperty(tgtID, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (pi != null) { pi.SetValue(tgtObj, srcRow[srcID]); } } } } } } else { _owner.Value = e.Data; if (_srcIDs != null) { // 同步填充 object tgtObj = _owner.Owner.Data; Row tgtRow = tgtObj as Row; for (int i = 0; i < _srcIDs.Length; i++) { var srcPi = e.Data.GetType().GetProperty(_srcIDs[i], BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (srcPi != null) { string tgtID = _tgtIDs[i]; if (tgtRow != null) { if (tgtRow.Contains(tgtID)) { tgtRow[tgtID] = srcPi.GetValue(e.Data); } } else { var tgtPi = tgtObj.GetType().GetProperty(tgtID, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (tgtPi != null) { tgtPi.SetValue(tgtObj, srcPi.GetValue(e.Data)); } } } } } } Close(); _owner.OnSelected(e.Data); }