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 ...


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;

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.