При использовании традиционного синтаксиса {Binding} вы можете указать имя элемента, чтобы указать на определенный элемент управления на странице и получить доступ к его свойствам. Например, если страница называется page
, вы можете сделать:
{Binding ElementName=Page, Path=Name}
В синтаксисе {x: Bind} говорится
С x: Bind вам не нужно использовать ElementName = xxx как часть выражения привязки. С помощью x: Bind вы можете использовать имя элемента в качестве первой части пути для привязки, поскольку именованные элементы становятся полями внутри страницы или пользовательского элемента управления, представляющего корневой источник привязки.
Таким образом, для приведенного выше примера в {x: Bind} будет
{x:Bind page.Name}
Что отлично работает, пока не окажется внутри шаблона данных (например, ItemTemplate ListView). В этом случае он больше не работает, поскольку ищет Page
в указанном типе данных, что приводит к следующей ошибке (при условии, что мой тип данных - customer
):
Ошибка XamlCompiler WMC1110: недопустимый путь привязки «Page.Name»: свойство «Страница» не может быть найдено для типа «Клиент»
Как можно использовать синтаксис {x: Bind} с таблицами данных и элементами управления доступом вне шаблона данных?
Пример кода доступен здесь (обратите внимание на конкретную фиксацию)