Trong mô hình và kiểu xem của tôi, tôi có một phương thức có chữ ký là bool IsPropertyReadOnly(string propertyName)
. Phương thức này xác định nếu người dùng hiện đang đăng nhập có thể chỉnh sửa một giá trị thích hợp. Một vài người dùng sẽ có thể chỉnh sửa các giá trị thuộc tính và hầu hết những người dùng khác sẽ có quyền truy cập chỉ đọc.Làm cách nào để dữ liệu ràng buộc kết quả của phương pháp mô hình chế độ xem với thuộc tính TextBox?
Thay vì tạo thuộc tính để trả lại trạng thái chỉ đọc của từng thuộc tính của mô hình, tôi muốn kết buộc kết quả của IsPropertyReadOny
đến thuộc tính TextBox.IsReadOnly
.
Đây là cách tôi hình dung cú pháp:
<TextBox Text="{Binding Address, Mode=TwoWay}"
IsReadOnly="{Binding MethodName=IsPropertyReadOnly MethodParameter=Address}"
/>
Các DataContext
chứa xem mô hình, vì vậy về cơ bản tôi cần phải ràng buộc IsReadOnly
đến kết quả của cuộc gọi ((Class)this.DataContext).IsPropertyReadOnly("Address")
Có rất nhiều tài liệu trong sử dụng một số ObjectDataProvider
, nhưng đối tượng cung cấp dữ liệu tạo ra một cá thể đối tượng mới không phải là thứ tôi muốn. Hơn nữa, để sử dụng một cá thể hiện có, tôi phải thực hiện nhiệm vụ trong mã-đằng sau. Một lần nữa, không phải những gì tôi muốn làm.
Từ nghiên cứu của tôi, có vẻ như một giải pháp kế thừa từ Binding
hoặc MarkupExtension
phù hợp hơn với nhu cầu của tôi.
Mọi trợ giúp sẽ được đánh giá cao.
Đây có thể là một câu trả lời cho câu hỏi của bạn (câu trả lời cuối cùng có sử dụng chuyển đổi): [? Bind to một phương pháp trong WPF] (http://stackoverflow.com/questions/ 502250/bind-to-a-method-in-wpf) –