我有一个带有observablecollection成员的viewmodel。
我创建了一个与此集合绑定的usercontrol,以及集合中的每个项,我最终在用户控件构造函数中。在这个构造函数中,datacontext为null,为什么会这样?
<ItemsControl ItemsSource="{Binding ListOfMyCustomType}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<uc:Tile DataContext="{Binding Path=.}"></uc:Tile>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
修改
调试输出中没有BindingExpression错误。
修改
由Matthias解决,此时无法使用datacontext 。加载控件或datacontext更改时,它将可用。竖起大拇指!
此致
米歇尔
答案 0 :(得分:1)
我会删除DataContext属性和绑定表达式。您的用户控件将采用任何项目(ItemsControl绑定的集合内)绑定到当前项目的模板。
然后在您加载的控件事件中,您应该能够访问其DataContext:
var dataContext = this.DataContext as YourCustomType;