Eine TwoWay- oder OneWayToSource-Bindung kann nicht für die schreibgeschützte Eigenschaft verwendet werden


102

Ich habe eine schreibgeschützte Eigenschaft, die ich in einem Textfeld anzeigen muss, und erhalte diesen Fehler zur Laufzeit. Ich habe gesetzt IsEnabled="False", IsReadOnly="True"- kein Glück. Andere Suchanfragen besagen, dass das Readonly das Problem beheben sollte, aber nicht für mich. Ich habe eine hässliche Problemumgehung, indem ich einen Dummy-Setter hinzufüge ...


5
Wenn Sie eine bidirektionale Bindung wünschen, muss der Eigenschaftssetzer öffentlich sein. Siehe stackoverflow.com/questions/8773150/…
Colonel Panic

1
Und aus der Abteilung des blendend Offensichtlichen muss der Setter auch existieren ; dh eine Eigenschaft mit nur einem get zeigt das gleiche Problem.
Mittag und

Antworten:


171

Ohne Code ist es schwer zu erraten, aber Sie sollten in der Lage sein, den BindingMode auf OneWay zu setzen.

<TextBox Text="{Binding Path=MyProperty, Mode=OneWay}" />

oder aus Code:

Binding binding = new Binding();
binding.Mode = BindingMode.OneWay;

29
Ja, "Mode = OneWay" == Schreibgeschützt; "Mode = OneWayToSource" == Nur schreiben
Bryan Anderson

1
Bitte beachten Sie, dass es in .NET 4.0 einen "Fehler" gibt, den OneWayToSource auch ausführt
Luuk

Informationen zur Zwei-Wege-Bindung für Einstellungen finden Sie unter stackoverflow.com/a/845033/194717
Tony,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.