Tôi nhớ đọc một vài tuần trước rằng đôi khi nó không hoạt động bên trong các mẫu và gần đây tôi đã cố gắng liên kết mọi thứ trong hai cửa sổ khác nhau và không thể tìm thấy các khai báo tên, vì vậy tôi giả định rằng nó là địa phương không gian tên của lớp và chỉ bị ràng buộc bằng cách đặt datacontext thay thế. Tuy nhiên, tôi thực sự tò mò khi tôi có thể sử dụng tên phần tử ràng buộc và khi tôi không thể, bởi vì nó thuận tiện hơn nhiều khi có thể.Làm cách nào để binding elementname hoạt động chính xác?
chỉnh sửa: Khi đọc bài báo đó, tôi thấy điều này là thú vị:
"Vì lý do này, kiểu dáng và mẫu cả hai xác định namescopes XAML của riêng mình, không phụ thuộc vào bất cứ điều gì vị trí trong một cây đối tượng nơi phong cách hoặc mẫu được áp dụng."
nếu điều này đúng, điều đó có nghĩa là Binding ElementName không hoạt động trong các mẫu không? Nhưng sau đó tôi chắc chắn có một số ràng buộc làm việc trên ElementName trong các mẫu của tôi. Đó là phần khó hiểu nhất, tại sao một số ràng buộc ngẫu nhiên làm việc bên trong các khuôn mẫu và những người khác thì không? Nó phải có một số phương pháp để cố gắng giải quyết tên ngay cả khi nó không có trong mẫu hoặc cùng một tên kính
'ElementName' ràng buộc chỉ hoạt động cho các yếu tố trong cùng [NameScope] (http://msdn.microsoft.com/en-us/library/ms746659.aspx) –
mà namescope? như sau: xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml" nhưng nếu chỉ là hai tệp đó thì tất cả các tệp của tôi đều có các tệp đó thì tôi có thể tham chiếu mọi thứ bằng cách sử dụng ElementName –
Đó là 'Không gian tên', không phải là' Kính hiển vi '. Đó là 2 khái niệm khác nhau. 'Namespace' là một khái niệm' XML', và 'Namescope' là một khái niệm XAML. –