public void Bind(ValueNode target, Func <object> callback) { if (IsConst) { return; } var source = GetSource(target); var finalCallback = ValueConverter == null ? callback : () => ConvertBack(callback(), target.CreateLazySerializationContext()); source.Bindings.Add(finalCallback); }
public object GetBoundValue(ValueNode target) { if (IsConst) { return(_constValue); } var source = GetSource(target); CheckSource(source); return(ValueConverter == null ? source.BoundValue : Convert(source.BoundValue, target.CreateLazySerializationContext())); }
public object GetValue(ValueNode target) { if (IsConst) { return(_constValue); } if (BindingMode == BindingMode.OneWayToSource) { return(null); } var source = GetSource(target); CheckSource(source); return(ValueConverter == null ? source.Value : Convert(source.Value, target.CreateLazySerializationContext())); }