Khi sử dụng cú pháp {Binding} truyền thống, bạn có thể chỉ định tên phần tử để trỏ đến một điều khiển cụ thể trên trang và có thể truy cập các thuộc tính của nó. Ví dụ, nếu trang web được đặt tên page
bạn có thể làm:Thay thế cho ElementName trong x: Liên kết với DataTemplates
{Binding ElementName=Page, Path=Name}
Với cú pháp {x:Bind} nó nói
Với x: Ràng buộc, bạn không cần phải sử dụng ElementName = xxx như một phần của biểu thức ràng buộc. Với x: Bind, bạn có thể sử dụng tên của phần tử làm phần đầu tiên của đường dẫn cho ràng buộc vì các phần tử được đặt tên trở thành các trường trong trang hoặc điều khiển người dùng đại diện cho nguồn ràng buộc gốc .
Vì vậy, cho ví dụ trên trong {x: Bind} sẽ
{x:Bind page.Name}
nào hoạt động tốt, cho đến khi nó nằm bên trong một mẫu dữ liệu (ví dụ của một ListView ItemTemplate). Trong trường hợp này nó không còn hoạt động vì nó đang tìm kiếm Page
vào loại dữ liệu cụ thể dẫn đến các lỗi sau (giả sử kiểu dữ liệu của tôi là customer
):
XamlCompiler lỗi WMC1110: không hợp lệ ràng buộc path 'Page.Name ': Thuộc tính' Trang 'không thể tìm thấy trên loại' Khách hàng '
Giải pháp sử dụng cú pháp {x: Bind} với bảng điều khiển và điều khiển truy cập bên ngoài mẫu dữ liệu là gì?
Ví dụ mã có sẵn here (lưu ý cụ thể cam kết)