2011-01-03 37 views
34

Tôi có một biểu mẫu WPF với tối đa 40 hộp văn bản, với hộp kiểm cho mỗi hộp. Mỗi hộp văn bản phải được bật/tắt dựa trên giá trị của hộp kiểm tương ứng. Tôi đã nhìn thấy các giải pháp mà chúng tôi có thể sử dụng ICommand để đạt được điều này, nhưng làm cách nào để xử lý 40 trường hợp riêng lẻ mà không cần triển khai 40 ICommand?Bật/tắt hộp văn bản dựa trên lựa chọn hộp kiểm trong WPF bằng cách sử dụng MVVM

Trả lời

86

Chỉ cần ràng buộc IsEnabled tài sản của TextBox đến IsChecked tài sản của CheckBox:

<CheckBox Name="checkBox1" /> 
<TextBox IsEnabled="{Binding ElementName=checkBox1, Path=IsChecked}" /> 
+0

Vâng, tôi chỉ cố gắng này sau khi công bố câu hỏi. Điều này làm việc cho tôi. Chỉ là tôi đã cố gắng tránh đặt tên cho mỗi hộp kiểm để đạt được MVVM thuần túy, nhưng tôi nghĩ tôi sẽ phải thực hiện một ngoại lệ. Cảm ơn. – aliensurfer

+2

Tôi đồng ý. Đừng làm điều này thông qua MVVM. Điều này cho phép/vô hiệu hóa thingy là một quyết định thiết kế giao diện người dùng thuần túy và không có gì để làm với các dữ liệu cơ bản của ứng dụng của bạn. – Dabblernl

+1

@Prakash: Điều gì khiến bạn nghĩ rằng đặt tên cho hộp kiểm không phải là MVVM "thuần túy"? Không có gì trong MVVM nói bạn không nên đặt tên cho các mục giao diện người dùng ... –

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