Прив’язка TwoWay або OneWayToSource не може працювати на властивості лише для читання


103

У мене є властивість лише для читання, яку мені потрібно відобразити в текстовому полі, і отримую цю помилку під час виконання. Я встановив IsEnabled="False", IsReadOnly="True"- не пощастило. Інші пошукові запити говорять, що прочитане лише повинно це виправити, але не для мене. Я отримав некрасиве рішення, додавши фіктивний сетер ...


5
Якщо ви хочете двосторонній прив'язки, налаштування властивості має бути загальнодоступним. Дивіться stackoverflow.com/questions/8773150/…
полковник Паніка

1
І від відділу сліпуче очевидного, сетер також повинен існувати ; тобто майно з лише отриманням буде видно те саме питання.
опівдні

Відповіді:


172

Важко здогадатися без коду, але ви повинні мати можливість встановити BindingMode на OneWay.

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

або з коду:

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

29
Так, "Режим = OneWay" == Лише для читання; "Mode = OneWayToSource" == Лише писати
Брайан Андерсон,

1
Зверніть увагу, що в .NET 4.0 є "помилка", яку OneWayToSource також отримує: stackoverflow.com/questions/14967667/…
Luuk,

Крім того, про прив'язування DoubleWay до налаштувань див. Stackoverflow.com/a/845033/194717
Тоні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.