2010-02-10 28 views
21

Tôi đang làm việc trên ứng dụng WPF và đang gặp khó khăn với trình kích hoạt dữ liệu. Tôi muốn ràng buộc giá trị của điều kiện kích hoạt cho một số đối tượng tôi có:Sử dụng ràng buộc cho thuộc tính Giá trị của điều kiện DataTrigger

<DataTrigger Binding="{Binding Foo}" 
      Value="{Binding ElementName=AnotherElement, Path=Bar}">.. 

Tuy nhiên, tôi không được phép vì dường như không thể sử dụng các ràng buộc cho thuộc tính Giá trị. Là nó? Tôi có thể đạt được điều này bằng cách nào đó? Tôi nhận được lỗi sau:

A 'Binding' cannot be set on the 'Value' property of type 'DataTrigger'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.

Trả lời

33

Không, không thể thực hiện được. Khi thông báo lỗi cho biết, chỉ các thuộc tính phụ thuộc mới có thể là các đích của các ràng buộc WPF và DataTrigger.Value không phải là một thuộc tính phụ thuộc. Vì vậy, bạn sẽ cần phải chỉ định một giá trị thực tế.

Cách giải quyết là sử dụng MultiBinding có Bindings con là hai ràng buộc bạn muốn so sánh, với IMultiValueConverter trả về true nếu hai đầu vào bằng nhau và sai nếu chúng không bằng nhau. DataTrigger sau đó có thể sử dụng MultiBinding và Giá trị True.

8

Để xây dựng câu trả lời: here là ví dụ về cách thực hiện.

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