我试图通过揭开由我之前从事这项工作的人所写的一个坦率的噩梦项目来学习WPF。很抱歉,如果我的一些问题几乎是家庭作业,但我正在尝试解决现有的XAML所做的事情,对其背后的概念了解不足......
无论如何,我有一个ListView作为其定义的一部分:
<ListView
DataContext="{StaticResource XMLFileGroups}"
ItemContainerStyle="{StaticResource XMLItemStyle}"
ItemsSource="{Binding}">
现在,我可以了解“DataContext”和“ItemContainerStyle”行正在做什么;它们似乎是引用排序现有列表的方法,以及分别定义ListView的一些可视行为的结构。
破坏我的是ItemsSource列为“{Binding}”的事实。所有对我说的都是存在某种数据绑定,但我不明白该行如何有意义,但删除它会阻止显示任何数据。
有人能否了解这里发生的事情,或者我应该在哪里寻找实际的绑定定义?在这里,我只是不明白我所看到的。
答案 0 :(得分:31)
如果没有路径,{Binding}
将绑定到DataContext
本身
添加路径将绑定到datacontext的属性。
答案 1 :(得分:8)
该示例指定绑定是 DataContext。后面的代码中的相同内容是
MyList.ItemsSource = new Binding();
您还可以执行以下操作:
ItemsSource="{Binding YourBindingField, Source={StaticResource YourStaticDataSource}}"
将在后面的代码中转换为:
MyList.ItemsSource = new Binding() {ElementName = "YourBindingField", Source = YourStaticDataSource};
希望有所帮助