TwoWay 또는 OneWayToSource 바인딩은 읽기 전용 속성에서 작동 할 수 없습니다.


103

텍스트 상자에 표시해야하는 읽기 전용 속성이 있으며 런타임에이 오류가 발생합니다. 나는 IsEnabled="False", IsReadOnly="True"-운이 없다. 다른 검색에서는 읽기 전용으로 수정해야한다고 말하지만 나에게는 적합하지 않습니다. 더미 세터를 추가하여 추악한 해결 방법이 있습니다.


5
양방향 바인딩을 원하는 경우 속성 setter는 공용이어야합니다. stackoverflow.com/questions/8773150/를
Colonel Panic

1
그리고 눈부신 명백한 부서에서 세터도 존재 해야 합니다 . 즉, 단지 get을 가진 재산은 동일한 문제를 나타낼 것입니다.
noonand

답변:


172

코드 없이는 추측하기 어렵지만 BindingMode를 OneWay로 설정할 수 있어야합니다.

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

또는 코드에서 :

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

29
네, "Mode = OneWay"== 읽기 전용; "Mode = OneWayToSource"== 쓰기 전용
Bryan Anderson

1
.NET 4.0에는 OneWayToSource가 가져 오는 "버그"가 있습니다. stackoverflow.com/questions/14967667/…
Luuk

또한 설정의 양방향 바인딩에 대해서는 stackoverflow.com/a/845033/194717
Tony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.