Что означает "ItemsSource =" {Binding} "? - PullRequest
34 голосов
/ 06 октября 2010

Я пытаюсь выучить WPF, разворачивая откровенно кошмарный проект, написанный парнем, который был на этой работе до меня.Извините, если некоторые из моих вопросов в значительной степени относятся к домашней работе, но я пытаюсь понять, что делает существующий XAML, с недостаточным пониманием концепций, лежащих в его основе ...

В любом случае, у меня есть ListView сэто как часть его определения:

<ListView 
    DataContext="{StaticResource XMLFileGroups}"
    ItemContainerStyle="{StaticResource XMLItemStyle}"
    ItemsSource="{Binding}">

Теперь я могу немного разобраться в том, что делают строки «DataContext» и «ItemContainerStyle»;кажется, что они ссылаются на метод сортировки существующего списка и структуру, определяющую некоторое визуальное поведение ListView, соответственно.

Что разрушает меня, так это то, что ItemsSource указан как "{Binding}".Все, что мне говорит, - это то, что существует какая-то привязка к данным, но я не понимаю, как эта строка может быть значимой, и все же ее удаление мешает отображению любых данных.

Может кто-то потерятьсвет на то, что здесь происходит, или где я должен искать фактическое определение привязки?Я просто не понимаю, что я вижу здесь.

Ответы [ 2 ]

31 голосов
/ 06 октября 2010

Без пути {Binding} свяжется с самим DataContext.
Добавление пути приведет к привязке к свойству текста данных.

8 голосов
/ 06 октября 2010

В этом примере указывается, что привязка равна DataContext.То же самое в коде будет:

MyList.ItemsSource = new Binding();

. Вы также можете сделать что-то вроде:

ItemsSource="{Binding YourBindingField, Source={StaticResource YourStaticDataSource}}"

, что будет переводиться в коде:1011 * Надеюсь, что помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...