usercontrol的Datacontext为null

时间:2012-03-28 22:28:38

标签: wpf user-controls observablecollection datacontext

我有一个带有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更改时,它将可用。竖起大拇指!

此致

米歇尔

1 个答案:

答案 0 :(得分:1)

我会删除DataContext属性和绑定表达式。您的用户控件将采用任何项目(ItemsControl绑定的集合内)绑定到当前项目的模板。

然后在您加载的控件事件中,您应该能够访问其DataContext:

var dataContext = this.DataContext as YourCustomType;