public void UpdateSelection(OptionValueChangedEventArgs e) { if (e == null) { return; } if (inUpdate) { return; } // if (!optionItem.IsAlive) { // return; // } // IOptionItem oi = (IOptionItem)optionItem.Target; object value = e.NewValue; if (value == OptionItem.VALUE_UNDEFINED) { //no change return; } try { inUpdate = true; //lock selection for the duration of our update selection.BeginValueUpdate(); ICollection <IPropertyItemDescriptor <T> > descriptors; descriptors = selection.Selection; bool hasChanged = false; foreach (IPropertyItemDescriptor <T> descriptor in descriptors) { //get the propertyItem from the current lookup IPropertyMap map = descriptor.Properties; if (map == null) { continue; } //get value from current selection item IPropertyItem item = map.GetEntry(virtualPropertyName); IValueSetter setter = item != null ? item.Setter : null; if (setter == null || !setter.CanSet()) { continue; } setter.SetValue(value); hasChanged = true; } if (hasChanged) { selection.UpdateSelectedItems(); } } finally { selection.EndValueUpdate(); inUpdate = false; } }
public virtual object CreateInstance(IDataReader reader) { if (this._checkNullOrdinal != null) { if (reader.IsDBNull(this._checkNullOrdinal.Value)) { return(null); } } this._readerOrdinalEnumerator.Reset(); this._objectActivatorEnumerator.Reset(); object obj = null; try { obj = this._instanceCreator(reader, this._readerOrdinalEnumerator, this._objectActivatorEnumerator); } catch (Exception ex) { if (this._readerOrdinalEnumerator.CurrentOrdinal >= 0) { throw new DataException(AppendErrorMsg(reader, this._readerOrdinalEnumerator.CurrentOrdinal), ex); } throw; } IValueSetter memberSetter = null; try { int count = this._memberSetters.Count; for (int i = 0; i < count; i++) { memberSetter = this._memberSetters[i]; memberSetter.SetValue(obj, reader); } } catch (Exception ex) { MappingMemberBinder binder = memberSetter as MappingMemberBinder; if (binder != null) { throw new DataException(AppendErrorMsg(reader, binder.Ordinal), ex); } throw; } return(obj); }
} // End of ImplBoundValueAlign (...) private Boolean _BoundValueSetterAlign() { IValueSetter setter = ValueBinder.BoundObjectValue as IValueSetter; if (setter == null) { return(false); } setter.SetValue(Value); return(true); } // End of ImplBoundValueAlign (...)
public void SetValue(object value) { if (cloner != null && newInstanceSetter != null) { TInnerSubject currentValue; currentValue = getTargetHandler(); TInnerSubject newSubject = cloner(currentValue); if (!ReferenceEquals(newSubject, currentValue)) { newInstanceSetter(newSubject); } } { setter.SetValue(value); } }
public void SetValue(object value) { T1 newInstance = parent.parent.CreateCopy(parent, parent.CurrentInstance); parent.SetTempInstance(newInstance); try { if (setter.CanSet()) { setter.SetValue(value); } else { return; // don't commit it. } } finally { parent.ResetTempInstance(); } parent.SetNewInstance(newInstance); }