Un'associazione TwoWay o OneWayToSource non può funzionare sulla proprietà di sola lettura


103

Ho una proprietà di sola lettura che devo visualizzare in una casella di testo e ottengo questo errore in fase di esecuzione. Ho impostato IsEnabled="False", IsReadOnly="True"- senza fortuna. Altre ricerche dicono che la sola lettura dovrebbe risolverlo, ma non per me. Ho una brutta soluzione alternativa aggiungendo un dummy setter ...


5
Se si desidera un binding bidirezionale, il setter della proprietà deve essere pubblico. Vedi stackoverflow.com/questions/8773150/…
Colonel Panic

1
E dal dipartimento dell'accecante ovvio, deve esistere anche il setter ; cioè una proprietà con solo un get presenterà lo stesso problema.
mezzogiorno e

Risposte:


172

È difficile indovinare senza codice, ma dovresti essere in grado di impostare BindingMode su OneWay.

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

o da codice:

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

29
Sì, "Mode = OneWay" == Sola lettura; "Mode = OneWayToSource" == Solo scrittura
Bryan Anderson

1
Tieni presente che in .NET 4.0 c'è un "bug" che OneWayToSource ottiene anche: stackoverflow.com/questions/14967667/…
Luuk

Inoltre, per TwoWay Binding on Settings vedi stackoverflow.com/a/845033/194717
Tony
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.