Is there a way to specify a custom dependency property's default binding mode and update trigger?

19,649

Solution 1

When registering the property, initialize your metadata with:

new FrameworkPropertyMetadata
{
    BindsTwoWayByDefault = true,
    DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
}

Solution 2

In the Dependency Property declaration it would look like this:

public static readonly DependencyProperty IsExpandedProperty = 
        DependencyProperty.Register("IsExpanded", typeof(bool), typeof(Dock), 
        new FrameworkPropertyMetadata(true,
            FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
            OnIsExpandedChanged));

public bool IsExpanded
{
    get { return (bool)GetValue(IsExpandedProperty); }
    set { SetValue(IsExpandedProperty, value); }
}
Share:
19,649
Justin
Author by

Justin

I am very new to programming. Learning C# on the internet. Am working on a minimalistic text editor.

Updated on June 24, 2022

Comments

  • Justin
    Justin about 2 years

    I would like to make it so that, as default, when I bind to one of my dependency properties the binding mode is two-way and update-trigger is property changed. Is there a way to do this?

    Here is an example of one of my dependency properties:

    public static readonly DependencyProperty BindableSelectionLengthProperty =
            DependencyProperty.Register(
            "BindableSelectionLength",
            typeof(int),
            typeof(ModdedTextBox),
            new PropertyMetadata(OnBindableSelectionLengthChanged));