示例#1
0
        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);
        }
示例#2
0
        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()));
        }
示例#3
0
        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()));
        }