示例#1
0
 public static void Register(BindDefinition bd)
 {
     Definitions.Add(bd);
 }
示例#2
0
 private void AddExistingBinding(BindDefinition bd, IDisposable subs)
 {
     bindings.Add(bd, subs);
 }
示例#3
0
 private IDisposable BindToDataContext(BindDefinition bd)
 {
     return(new DataContextSubscription(bd));
 }
示例#4
0
        private static IDisposable BindToTemplatedParent(BuilderContext buildContext, BindDefinition bd)
        {
            var source = (Layout)buildContext.Store["TemplateParent"];

            if (bd.TargetFollowsSource)
            {
                var property  = source.GetProperty(bd.SourceProperty);
                var sourceObs = source.GetChangedObservable(property).StartWith(source.GetValue(property));

                var targetLayout = (Layout)bd.TargetInstance;
                var observer     = targetLayout.GetObserver(targetLayout.GetProperty(bd.TargetMember.MemberName));

                sourceObs.Subscribe(observer);
            }

            return(Disposable.Empty);
        }