Une liaison TwoWay ou OneWayToSource ne peut pas fonctionner sur la propriété en lecture seule


104

J'ai une propriété en lecture seule que je dois afficher dans une zone de texte et obtenir cette erreur au moment de l'exécution. J'ai mis IsEnabled="False", IsReadOnly="True"- pas de chance. D'autres recherches indiquent que la lecture seule devrait résoudre ce problème, mais pas pour moi. J'ai une solution de contournement moche en ajoutant un poseur factice ...


5
Si vous souhaitez une liaison bidirectionnelle, le paramètre de propriété doit être public. Voir stackoverflow.com/questions/8773150/…
Colonel Panic

1
Et du département de l'évidence aveuglante, le setter doit aussi exister ; c'est-à-dire qu'une propriété avec juste un get présentera le même problème.
midi et

Réponses:


172

C'est difficile à deviner sans code, mais vous devriez pouvoir définir le BindingMode sur OneWay.

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

ou à partir du code:

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

29
Oui, "Mode = OneWay" == Lecture seule; "Mode = OneWayToSource" == Écriture uniquement
Bryan Anderson

1
Veuillez noter que dans .NET 4.0 il y a un "bogue" que OneWayToSource fait également un get: stackoverflow.com/questions/14967667/...
Luuk

Aussi, pour la liaison TwoWay sur les paramètres, voir stackoverflow.com/a/845033/194717
Tony
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.