web-dev-qa-db-fra.com

Existe-t-il un moyen de spécifier un mode de liaison par défaut de propriété de dépendance personnalisée et un déclencheur de mise à jour?

Je voudrais faire en sorte que, par défaut, lorsque je me lie à l'une de mes propriétés de dépendance, le mode de liaison est bidirectionnel et le déclencheur de mise à jour est modifié. Y a-t-il un moyen de faire cela?

Voici un exemple de l'une de mes propriétés de dépendance:

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

Lors de l'enregistrement de la propriété, initialisez vos métadonnées avec:

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

Dans la déclaration de propriété de dépendance, cela ressemblerait à ceci:

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); }
}
17
Paul Matovich