2009-02-26 31 views
75

Tengo una propiedad de solo lectura que necesito mostrar en un cuadro de texto y obtener este error en tiempo de ejecución. Establecí IsEnabled="False", IsReadOnly="True" - sin suerte. Otras búsquedas dicen que el readonly debería arreglarlo, pero no para mí. Tengo una solución fea al agregar un setter ficticio ...Un enlace TwoWay o OneWayToSource no puede funcionar en la propiedad de solo lectura

+5

Si quieres dos vías de unión, el colocador propiedad debe ser pública. Ver http://stackoverflow.com/questions/8773150/invalidoperationexception-a-twoway-or-onewaytosource-binding-cannot-work-on-th –

+1

Y desde el departamento de lo cegadoramente obvio, el colocador también debe * existir *; es decir, una propiedad con solo un get exhibirá el mismo problema. – noonand

Respuesta

126

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

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

o de código:

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

Sí, "Modo = OneWay" == Solo lectura; "Mode = OneWayToSource" == Write Only –

+1

Tenga en cuenta que en .NET 4.0 hay un "error" que OneWayToSource también obtiene: http://stackoverflow.com/questions/14967667/wpf-net-4-onewaytosource-binding -to-write-only-property-works-on-some-machine – Luuk

+0

Además, para la vinculación de TwoWay en la configuración, consulte http://stackoverflow.com/a/845033/194717 – Tony

Cuestiones relacionadas