예제 #1
0
파일: Binding.cs 프로젝트: morsiu/Settings
        public IEnumerable <ISettingBinding> ProvideBindings(DependencyObject target)
        {
            var builder          = new ValueBindingBuilder();
            var @namespace       = Settings.GetNamespace(target);
            var accessor         = Settings.CurrentStoreAccessor;
            var exceptionHandler = new DebugValueAdapterExceptionHandler(Property, target, Store, Setting, @namespace);
            var binding          = builder
                                   .SetTargetAdapter(target, Property)
                                   .SetSourceAdapter(accessor, Store, @namespace, Setting)
                                   .SetExceptionHandler(exceptionHandler.LogAndSwallowException)
                                   .Build();

            return(new[] { binding });
        }
예제 #2
0
        private ISettingBinding BindColumn(
            DataGridColumn column,
            int columnIndex,
            DependencyProperty storedProperty,
            SettingsNamespace @namespace,
            ValueBindingBuilder builder)
        {
            var accessor      = Settings.CurrentStoreAccessor;
            var settingName   = GetSettingName(Setting, column, columnIndex, storedProperty);
            var targetAdapter =
                DecorateTargetAdapter(
                    CreateTargetAdapter(column, storedProperty),
                    column,
                    columnIndex,
                    storedProperty);
            var exceptionHandler = new DebugValueAdapterExceptionHandler(storedProperty.Name, column, Store, settingName, @namespace);
            var binding          = builder
                                   .SetTargetAdapter(targetAdapter)
                                   .SetSourceAdapter(accessor, Store, @namespace, settingName)
                                   .SetExceptionHandler(exceptionHandler.LogAndSwallowException)
                                   .Build();

            return(binding);
        }