2010-04-18 7 views
51

Ich würde es gerne so machen, dass, als Standard, wenn ich an eine meiner Abhängigkeitseigenschaften binden der Bindungsmodus ist Zwei-Wege-und Update-Trigger ist Eigenschaft geändert. Gibt es eine Möglichkeit, dies zu tun? HierGibt es eine Möglichkeit, den Standard-Bindungsmodus einer benutzerdefinierten Abhängigkeitseigenschaft und den Aktualisierungstrigger anzugeben?

ist ein Beispiel für eine meiner Abhängigkeitseigenschaften:

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

Antwort

84

Wenn die Eigenschaft Registrierung initialisieren Ihre Metadaten mit:

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

Ich war in der Lage, BindsTwoWayByDefault durch Hinzufügen dieser zu meinem Beispiel dp: neues FrameworkPropertyMetadata (0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnBindableSelectionStartChanged). Ich habe jedoch weiterhin Probleme, den UpdateSourceTrigger auf PropertyChanged zu setzen. – Justin

+1

Ich änderte meine Antwort, um zu zeigen, wie man es mit einem Objektinitialisierer macht. Verwenden Sie das anstelle eines Konstruktors. –

+0

Danke für Ihre Hilfe Diego! – Justin

14

In der Abhängigkeitseigenschaft Erklärung es würde wie folgt aussehen:

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); } 
} 
Verwandte Themen