2009-09-07 11 views
8

Hier ist ein kleines XAML-Fragment. Sie sehenWarum bricht die Datenbindung im OneWay-Modus ab?

<StackPanel> 
    <TextBox x:Name="txtValue">250</TextBox> 
    <Slider x:Name="slide" 
      Value="{Binding ElementName=txtValue, Path=Text, 
          Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
      Minimum="0" Maximum="500"></Slider> 
</StackPanel> 
  1. , wenn Sie die Textbox Wert zu ändern, um die Schieber Updates
  2. Wenn Sie den Regler Wert explizit ändern, bricht das bisherige Verhalten auch bekannt als nicht mehr funktioniert.

Wenn ich die Mode=OneWay gesetzte Direktive entferne, (vorgeht zu zweiweg) alles funktioniert tadellos.

Warum passiert das?

Antwort

3

Ihre Daten sind nicht verbindlich gebrochen, aber deaktiviert (http://en.wikipedia.org/wiki/Euphemism):

System.Windows.Data Warning: 75 : BindingExpression (hash=52697953): Deactivate 
System.Windows.Data Warning: 99 : BindingExpression (hash=52697953): Replace item at level 0 with {NullDataItem} 
System.Windows.Data Warning: 59 : BindingExpression (hash=52697953): Detach 

das Trace-Level einstellen zu hoch wird diese Nachricht im Fenster VS Ausgabe erzeugen, falls bewegen Sie den Schieberegler:

<Slider xmlns:trace="clr-namespace:System.Diagnostics;assembly=WindowsBase" 
     Value="{Binding trace:PresentationTraceSources.TraceLevel=High, 
      ElementName=txtValue, Path=Text, Mode=OneWay, 
      UpdateSourceTrigger=PropertyChanged}" 
     Minimum="0" Maximum="500"></Slider> 
+5

Warum löst es sich ab? Es vereitelt den Zweck der unidirektionalen Bindung, wenn etwas wie das Bewegen des Daumens auf dem gebundenen Steuerelement die Bindung deaktiviert oder abhebt. Mit gebrochen, ich meinte das erwartete Verhalten ist nicht mehr zu sehen. – Gishu

+0

So wird es implementiert :-( Wenn es Ihren Anforderungen nicht entspricht, verwenden Sie keine WPF-Datenbindung. –

12

Verwenden Sie mode=TwoWay und stellen Sie UpdateSourceTrigger=Explicit ein.

+7

Das funktioniert ... erklärt aber keine der Gründe. – Beska

Verwandte Themen