2014-07-07 3 views
7

Ich habe ein RadioButton Element, dessen IsChecked Eigenschaft an MyProperty in ViewModel gebunden ist. Die Binding hat Modus OneWayToSource aus irgendwelchen Gründen, es drückt den Wert RadioButton.IsChecked-ViewModel.MyProperty.WPF OneWayToSource Bindung Anfangswert

RadioButton.IsChecked zunächst false, jetzt. Ich möchte einen Anfangswert von ViewModel setzen, die auch true sein könnte. Ich kann das nicht tun, weil die Eigenschaft von der Bindung belegt ist.

Gibt es eine Möglichkeit Binding mit diesem Modus und Standardwert an die gebundenen Eigenschaft in UI zu benutzen? So etwas Ähnliches:

<RadioButton IsChecked="{Binding MyProperty, Mode=OneWayToSource, DefaultVaule=???}"> 
</RadioButton> 
+0

möglich Duplikat (http://stackoverflow.com/ questions/2238905/default-values-in-wpf-databinding) – pushpraj

+0

also meinst du, dass du den Wert von der Eigenschaft des Steuerelements zum Ansichtsmodell schieben willst und du den Wert nicht festlegen kannst, weil die Eigenschaft durch Bindung und besetzt ist Es gibt keine andere Option in der Bindung? ja wenn dann vielleicht die FallbackValue Verzug bei der Bindung und der Standardwert der View-Modell-Eigenschaft auf denselben Wert können Ihnen helfen, das gleiche erreichen. Standardmäßig ist der Standardwert für "boolean" und "IsChecked" auf "false" gesetzt, so dass Sie möglicherweise keine Änderungen benötigen, es sei denn, Sie möchten, dass der Standardwert wahr ist. – pushpraj

+0

Im ersten Satz beschrieben Sie genau das, was ich meine. Und ich möchte 'IsChecked' als' True' setzen - das ist das Problem. – monstr

Antwort

8

Wenn ich dich verstanden korrigieren, ich denke, das helfen kann:

Sie können den Standardwert durch die TargetNullValue Eigenschaft definieren. Sie können entweder einen FallbackValue Wert im Fehlerfall definieren, zum Beispiel:

<TextBox Text="{Binding MyProperty, TargetNullValue=0, FallbackValue=10}" /> 

siehe hier: [? Die Standardwerte in WPF Databinding] enter link description here

+0

Nein, das wird nicht funktionieren, ich habe diesen Beitrag bereits gesehen. 'TargetNullValue' wird verwendet, wenn die Eigenschaft des Ziels gleich 'Null' ist. Aber ich habe 'Boole'-Eigenschaft. – monstr

+1

Mit 'FallbackValue' funktioniert es – monstr