2011-02-06 23 views
5

Tôi có phần tử giao diện người dùng có màu tôi muốn đặt dựa trên biến cục bộ trong trang (thực tế trong mô-đun, nhưng tôi có thể di chuyển nó sang trang).WP7 Liên kết với biến cục bộ

tôi thấy trong WPF ai có thể ràng buộc một yếu tố giao diện người dùng cho một biến địa phương bằng cách làm cho biến một tài sản và thiết lập các ràng buộc RelativeSource đến tầng lớp phụ huynh sử dụng FindAncestor:

WPF Binding to local variable

Thật không may Silverlight dường như không hỗ trợ chế độ FindAncestor.

Bất kỳ giải pháp nào có thể, hoặc tôi phải tạo một thể hiện của một lớp tùy chỉnh và chỉ cho một biến này?

Trả lời

7

Tôi đã chuyển từ Silverlight sang WPF rất nhiều trong vài tuần qua, vì vậy ý ​​tưởng sau đây có thể hoặc không thể bay.

Trang của bạn có thuộc tính tên được đặt trên đó không? Nếu không, hãy đặt nó (x: Name = "MyPage").

sau đó bạn có thể làm:

Fill="{Binding ElementName=MyPage, Path=MyProperty}" 

Cho rằng một thử (chỉ cần ra khỏi đỉnh đầu của tôi)

+0

+1, tôi sắp đăng câu trả lời tương tự. ElementName binding là cách giải quyết thông thường (yếu hơn) vì thiếu FindAncestor. FWIW, FindAncestor ràng buộc đang đến trong Silverlight 5, vì vậy hy vọng điều này cuối cùng làm cho đường đến điện thoại. –

+0

Hmm cho nó một shot với một tài sản số nguyên để giữ cho nó đơn giản. Đặt tên cho trang "MyPage", sau đó trong phần tử giao diện người dùng, hãy đặt: ''. Trong mã trang, tôi có: 'Thuộc tính gDirection As Integer = 45'. Điều này ném một ngoại lệ về tải. Nếu tôi thay thế các ràng buộc với 45, nó hoạt động tốt, vì vậy trông giống như ràng buộc của không làm việc ... – amb9800

+0

những gì ngoại lệ? – Mark

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