Подтвердить что ты не робот

Что означает "ItemsSource =" {Binding} "?

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Этот пример указывает, что привязка DataContext. То же самое в коде позади было бы

MyList.ItemsSource = new Binding();

Вы также можете делать такие вещи, как:

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

который преобразуется в это в коде позади:

        MyList.ItemsSource = new Binding() {ElementName = "YourBindingField", Source = YourStaticDataSource};

Надеюсь, что поможет