72 votes

Existe-t-il un moyen de spécifier le mode de liaison par défaut d'une propriété de dépendance personnalisée et le 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 que update-trigger est une propriété modifiée. 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));
 

117voto

Diego Mijelshon Points 40314

Lorsque vous enregistrez la propriété, initialisez vos métadonnées avec:

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

24voto

Paul Matovich Points 336

Dans la déclaration Dependency Property, cela ressemble à ceci:

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

    public bool IsExpanded
    {
        get { return (bool)GetValue(IsExpandedProperty); }
        set { SetValue(IsExpandedProperty, value); }
    }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X