/// <summary> /// Generates a list of objects to be used in the DefaultItems collection. /// </summary> /// <param name="defaultItems">The collection that should be updated.</param> protected override void GenerateDefaultItems(SlottedItemCollection defaultItems) { base.GenerateDefaultItems(defaultItems); DecimalPartGroup decimalGroup = new DecimalPartGroup(); decimalGroup.SetBinding(DecimalPartGroup.IsReadOnlyProperty, new Binding("IsReadOnly") { Source = this }); decimalGroup.SetBinding(DecimalTextBox.StringFormatProperty, new Binding("StringFormat") { Source = this }); decimalGroup.SetBinding(DecimalPartGroup.MaximumProperty, new Binding("Maximum") { Source = this, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalGroup.SetBinding(DecimalPartGroup.MinimumProperty, new Binding("Minimum") { Source = this, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); SyncBinding.CreateBinding(this, DecimalTextBox.ValueProperty, decimalGroup, DecimalPartGroup.ValueProperty, UpdateSourceTrigger.PropertyChanged); defaultItems.Add(decimalGroup); }
/// <summary> /// Generates a list of objects to be used in the DefaultItems collection. /// </summary> /// <param name="defaultItems">The collection that should be updated.</param> protected override void GenerateDefaultItems(SlottedItemCollection defaultItems) { base.GenerateDefaultItems(defaultItems); DecimalPartGroup decimalGroup = new DecimalPartGroup(); decimalGroup.Style = this.TryFindResource("percentagePartGroup") as Style; decimalGroup.SetBinding(DecimalPartGroup.IsReadOnlyProperty, new Binding("IsReadOnly") { Source = this }); decimalGroup.SetBinding( DecimalPartGroup.MaximumProperty, new Binding("Maximum") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalGroup.SetBinding( DecimalPartGroup.MinimumProperty, new Binding("Minimum") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalGroup.SetBinding( DecimalPartGroup.StepProperty, new Binding("Step") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalGroup.SetBinding( DecimalPartGroup.ValueProperty, new Binding("Value") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); SyncBinding.CreateBinding( this, PercentageTextBox.PartValueCommitTriggersProperty, decimalGroup, DecimalPartGroup.PartValueCommitTriggersProperty, UpdateSourceTrigger.Default); defaultItems.Add(decimalGroup); defaultItems.Add(new TextBlockPartGroup() { Text = "%" }); }
/// <summary> /// Generates a list of objects to be used in the DefaultItems collection. /// </summary> /// <param name="defaultItems">The collection that should be updated.</param> protected override void GenerateDefaultItems(SlottedItemCollection defaultItems) { // Allow the base class to provide most of the default items. base.GenerateDefaultItems(defaultItems); // This control will create a special group of parts for a decimal implementation of a percent value. DecimalPartGroup decimalPartGroup = new DecimalPartGroup(); decimalPartGroup.SetBinding(DecimalPartGroup.StringFormatProperty, new Binding("Format") { Source = this }); decimalPartGroup.SetBinding(DecimalPartGroup.IsReadOnlyProperty, new Binding("IsReadOnly") { Source = this }); decimalPartGroup.SetBinding( DecimalPartGroup.MaximumProperty, new Binding("Maximum") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalPartGroup.SetBinding( DecimalPartGroup.MinimumProperty, new Binding("Minimum") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalPartGroup.SetBinding( DecimalPartGroup.StepProperty, new Binding("Step") { Source = this, Converter = new PercentageConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); SyncBinding.CreateBinding( this, DecimalTextBox.ValueProperty, decimalPartGroup, DecimalPartGroup.ValueProperty, UpdateSourceTrigger.PropertyChanged, new PercentageConverter()); defaultItems.Add(decimalPartGroup); defaultItems.Add(new TextBlockPartGroup() { Text = "%" }); }
/// <summary> /// Generate default parts. /// </summary> /// <param name="defaultItems"></param> protected override void GenerateDefaultItems(ActiproSoftware.Windows.Controls.Editors.Primitives.SlottedItemCollection defaultItems) { base.GenerateDefaultItems(defaultItems); EnumPartBase <E> part = new EnumPartBase <E>(); part.SetBinding(EnumPartBase <E> .IsEditableProperty, new Binding("IsReadOnly") { Source = this, Converter = new NotConverter() }); SyncBinding.CreateBinding(this, EnumPartBase <E> .ValueProperty, part, EnumPartBase <E> .ValueProperty); SyncBinding.CreateBinding(this, EnumPartBase <E> .InitialValueProperty, part, EnumPartBase <E> .InitialValueProperty); part.PartValueCommitTriggers = PartValueCommitTriggers.All; part.IsFocusMovedOnTerminalMatches = true; part.IsTabStop = true; defaultItems.Add(part); }
/// <summary> /// Generate default parts. /// </summary> /// <param name="defaultItems"></param> protected override void GenerateDefaultItems(ActiproSoftware.Windows.Controls.Editors.Primitives.SlottedItemCollection defaultItems) { // Allow the base class to set its defaults. base.GenerateDefaultItems(defaultItems); // This group will add a new set of defaults for the decimal part of the edit box. DecimalPart decimalPart = new DecimalPart(); decimalPart.SetBinding(DecimalPart.StringFormatProperty, new Binding("StringFormat") { Source = this }); decimalPart.SetBinding(DecimalPart.IsReadOnlyProperty, new Binding("IsReadOnly") { Source = this }); decimalPart.SetBinding(DecimalPart.MaximumProperty, new Binding("Maximum") { Source = this }); decimalPart.SetBinding(DecimalPart.MinimumProperty, new Binding("Minimum") { Source = this }); decimalPart.SetBinding(DecimalPart.StepProperty, new Binding("Step") { Source = this, Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); decimalPart.SetBinding(DecimalPart.ValueProperty, new Binding("Value") { Source = this, Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); SyncBinding.CreateBinding(this, DecimalPartGroup.InitialValueProperty, decimalPart, DecimalPart.InitialValueProperty); SyncBinding.CreateBinding( this, DecimalPartGroup.PartValueCommitTriggersProperty, decimalPart, DecimalPart.PartValueCommitTriggersProperty, UpdateSourceTrigger.Default); decimalPart.IsFocusMovedOnTerminalMatches = true; decimalPart.IsTabStop = true; defaultItems.Add(decimalPart); }
/// <summary> /// Generate default parts. /// </summary> /// <param name="defaultItems"></param> protected override void GenerateDefaultItems(ActiproSoftware.Windows.Controls.Editors.Primitives.SlottedItemCollection defaultItems) { base.GenerateDefaultItems(defaultItems); DecimalPart part = new DecimalPart(); part.SetBinding(DecimalPart.IsEditableProperty, new Binding("IsReadOnly") { Source = this, Converter = new NotConverter() }); part.SetBinding(DecimalPart.MaximumProperty, new Binding("Maximum") { Source = this }); part.SetBinding(DecimalPart.MinimumProperty, new Binding("Minimum") { Source = this }); part.SetBinding(DecimalPart.StepProperty, new Binding("Step") { Source = this, Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); part.SetBinding(DecimalPart.ValueProperty, new Binding("Value") { Source = this, Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); //SyncBinding.CreateBinding(this, DecimalPartGroup.ValueProperty, part, DecimalPart.ValueProperty); SyncBinding.CreateBinding(this, DecimalPartGroup.InitialValueProperty, part, DecimalPart.InitialValueProperty); SyncBinding.CreateBinding( this, DecimalPartGroup.PartValueCommitTriggersProperty, part, DecimalPart.PartValueCommitTriggersProperty, UpdateSourceTrigger.Default); part.IsFocusMovedOnTerminalMatches = true; part.IsTabStop = true; defaultItems.Add(part); }