2009-02-26 29 views
75

Tôi chỉ có thuộc tính chỉ đọc mà tôi cần hiển thị trong hộp văn bản và gặp phải lỗi này khi chạy. Tôi đã đặt IsEnabled="False", IsReadOnly="True" - không may mắn. Các tìm kiếm khác nói rằng chỉ đọc phải sửa nó, nhưng không phải cho tôi. Tôi đã giải quyết vấn đề xấu bằng cách thêm một bộ đặt giả ...Ràng buộc TwoWay hoặc OneWayToSource không thể hoạt động trên thuộc tính chỉ đọc

+5

Nếu bạn muốn hai cách ràng buộc, setter tài sản phải công khai. Xem http://stackoverflow.com/questions/8773150/invalidoperationexception-a-twoway-or-onewaytosource-binding-cannot-work-on-th –

+1

Và từ bộ phận rõ ràng, người đặt hàng cũng phải * tồn tại *; tức là một tài sản chỉ với một nhận được sẽ hiển thị cùng một vấn đề. – noonand

Trả lời

126

Thật khó đoán mà không có mã, nhưng bạn sẽ có thể đặt BindingMode thành OneWay.

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

hoặc từ mã:

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

Đúng, "Chế độ = OneWay" == Chỉ đọc; "Chế độ = OneWayToSource" == Chỉ viết –

+1

Xin lưu ý rằng trong .NET 4.0 có một "lỗi" mà OneWayToSource cũng thực hiện: http://stackoverflow.com/questions/14967667/wpf-net-4-onewaytosource-binding -to-write-only-property-works-on-some-machine – Luuk

+0

Ngoài ra, đối với Liên kết hai chiều trên Cài đặt, hãy xem http://stackoverflow.com/a/845033/194717 – Tony

Các vấn đề liên quan