Beispiel #1
0
        public void Build()
        {
            var @namespace     = Settings.GetNamespace(_target);
            var settings       = Settings.GetSettings(_target);
            var bindingBuilder = new ValueBindingBuilder();
            var accessor       = Settings.CurrentStoreAccessor;
            var binding        = bindingBuilder
                                 .SetTargetAdapter(_target, _property)
                                 .SetSourceAdapter(accessor, _storeKey, @namespace, _name)
                                 .Build();

            settings.AddBinding(binding);
        }
Beispiel #2
0
        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 });
        }
Beispiel #3
0
        public IEnumerable <ISettingBinding> ProvideBindings(DependencyObject target)
        {
            var builder = new ValueBindingBuilder();
            var synchronizationGroup = new SynchronizationGroup();

            builder.UseSynchronizationGroup(synchronizationGroup);
            var dataGrid   = (DataGrid)target;
            var @namespace = Settings.GetNamespace(target);
            var columns    = GetColumnsInInitializationOrder(dataGrid, @namespace);
            var bindings   = GetStoredProperties()
                             .SelectMany(
                property => columns.Select((c, i) => new { Column = c, ColumnIndex = dataGrid.Columns.IndexOf(c) }),
                (property, c) => BindColumn(c.Column, c.ColumnIndex, property, @namespace, builder));

            return(bindings);
        }
Beispiel #4
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);
        }