Podczas używania tradycyjnej składni {Binding} można podać nazwę elementu, aby wskazać konkretny element kontrolny na stronie i móc uzyskać dostęp do jego właściwości. Na przykład, jeśli strona jest nazwany page
można zrobić:Alternatywa dla elementu Nazwa w x: powiązanie z DataTemplates
{Binding ElementName=Page, Path=Name}
ze składnią {x:Bind} mówi
z X: Bind, nie trzeba używać ElementName = xxx jako część wyrażenie wiążące. Za pomocą x: Bind można użyć nazwy elementu jako pierwszej części ścieżki powiązania, ponieważ nazwane elementy stają się polami w obrębie strony lub kontrolką użytkownika reprezentującą źródłowe źródło powiązania.
Tak na powyższym przykładzie w {x: Bind} byłoby
{x:Bind page.Name}
Które działa dobrze, dopóki nie jest wewnątrz szablonu danych (na przykład ItemTemplate ListView'S). W tym przypadku to nie działa, ponieważ szuka Page
na określony typ danych, co prowadzi do następującego błędu (zakładając, że mój typ danych jest customer
):
XamlCompiler błąd WMC1110: Nieprawidłowy wiązania ścieżki „Page.Name ': nieruchomość Strona "nie można znaleźć na stronie typu«klient»
co jest rozwiązaniem używać {} x: Bind składni z datatemplates i kontroli dostępu poza szablonem danych?
Przykład Kod jest dostępny here (uwaga specyficzne popełnić)