Pengikatan TwoWay atau OneWayToSource tidak dapat berfungsi pada properti hanya-baca

103

Saya memiliki properti hanya baca yang perlu saya tampilkan di kotak teks, dan mendapatkan kesalahan ini saat runtime. Saya sudah menetapkan IsEnabled="False", IsReadOnly="True"- tidak berhasil. Pencarian lain mengatakan readonly harus memperbaikinya, tapi tidak untuk saya. Saya punya solusi yang buruk dengan menambahkan setter tiruan ...

Tony Trembath-Drake
sumber
5
Jika Anda menginginkan pengikatan dua arah, penyetel properti harus bersifat publik. Lihat stackoverflow.com/questions/8773150/…
Kolonel Panic
1
Dan dari departemen yang sangat jelas terlihat, penyetel juga harus ada ; yaitu, properti dengan hanya mendapatkan akan menunjukkan masalah yang sama.
tengah hari dan

Jawaban:

172

Sulit untuk menebak tanpa kode, tetapi Anda harus dapat menyetel BindingMode ke OneWay.

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

atau dari kode:

Binding binding = new Binding();
binding.Mode = BindingMode.OneWay;
Razzie
sumber
29
Ya, "Mode = OneWay" == Hanya Baca; "Mode = OneWayToSource" == Hanya Menulis
Bryan Anderson
1
Harap perhatikan bahwa di .NET 4.0 ada "bug" yang juga dilakukan OneWayToSource: stackoverflow.com/questions/14967667/…
Luuk
Juga, untuk Pengikatan TwoWay pada Pengaturan, lihat stackoverflow.com/a/845033/194717
Tony