'ItemsSource ="{Binding}"是什么意思?

Fro*_*840 34 .net wpf xaml

我正在尝试通过揭开由我之前从事这项工作的人所写的一个坦率的噩梦项目来学习WPF.很抱歉,如果我的一些问题几乎是家庭作业级别,但我正在尝试解决现有的XAML所做的事情,对其背后的概念理解不足......

无论如何,我有一个ListView作为其定义的一部分:

<ListView 
    DataContext="{StaticResource XMLFileGroups}"
    ItemContainerStyle="{StaticResource XMLItemStyle}"
    ItemsSource="{Binding}">
Run Code Online (Sandbox Code Playgroud)

现在,我可以了解"DataContext"和"ItemContainerStyle"行正在做什么; 它们似乎分别引用了对现有列表进行排序的方法,以及定义了ListView的一些可视行为的结构.

破坏我的是ItemsSource列为"{Binding}"的事实.所有这些都告诉我,有一些数据绑定到位,但我不明白该行如何可能有意义,但删除它会阻止任何数据显示.

有人可以了解这里发生的事情,或者我应该在哪里寻找实际的绑定定义?在这里,我只是不明白我所看到的.

SLa*_*aks 32

没有路径,{Binding}就会绑定DataContext自己.
添加路径将绑定到datacontext的属性.


dan*_*els 8

该示例指定绑定 DataContext.后面的代码中的相同内容将是

MyList.ItemsSource = new Binding();
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

ItemsSource="{Binding YourBindingField, Source={StaticResource YourStaticDataSource}}"
Run Code Online (Sandbox Code Playgroud)

这将在代码背后转换为:

        MyList.ItemsSource = new Binding() {ElementName = "YourBindingField", Source = YourStaticDataSource};
Run Code Online (Sandbox Code Playgroud)

希望有所帮助