Un enlace TwoWay o OneWayToSource no puede funcionar en la propiedad de solo lectura

103

Tengo una propiedad de solo lectura que necesito mostrar en un cuadro de texto y obtengo este error en tiempo de ejecución. Me he puesto IsEnabled="False", IsReadOnly="True"no tuve suerte. Otras búsquedas dicen que readonly debería solucionarlo, pero no para mí. Tengo una fea solución al agregar un setter ficticio ...

Tony Trembath-Drake
fuente
5
Si desea un enlace bidireccional, el establecedor de propiedades debe ser público. Ver stackoverflow.com/questions/8773150/…
Colonel Panic
1
Y desde el departamento de lo cegadoramente obvio, el setter también debe existir ; es decir, una propiedad con solo un get presentará el mismo problema.
mediodía y

Respuestas:

172

Es difícil de adivinar sin código, pero debería poder establecer BindingMode en OneWay.

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

o del código:

Binding binding = new Binding();
binding.Mode = BindingMode.OneWay;
Razzie
fuente
29
Sí, "Mode = OneWay" == Solo lectura; "Mode = OneWayToSource" == Sólo escritura
Bryan Anderson
1
Tenga en cuenta que en .NET 4.0 hay un "error" que OneWayToSource también consigue: stackoverflow.com/questions/14967667/…
Luuk
Además, para el enlace de dos vías en la configuración, consulte stackoverflow.com/a/845033/194717
Tony