我正在尝试将我的用户控件数据上下文绑定到视图模型对象。由于某种未知的原因,在Window.Resources内设置DataContext会导致以下错误:
在窗口资源之外设置相同的数据上下文则完美地工作。以下代码片段应该能够澄清事情:System.Windows.Data Error: 3 : 无法找到提供DataContext的元素。BindingExpression:Path=AreaFilter; DataItem=null;
<Window>
<Window.Resources>
<GridViewColumnCollection x:Key="eventColumns">
<GridViewColumn DisplayMemberBinding="{Binding Path=Area}">
<GridViewColumn.Header>
<v:FilterV DataContext="{Binding AreaFilter}"/> <!--here is the problem-->
</GridViewColumn.Header>
</GridViewColumn>
</GridViewColumnCollection>
</Window.Resources>
<Grid>
<v:FilterV DataContext="{Binding AreaFilter}"/> <!-- here it works OK -->
<GridViewHeaderRowPresenter Name="listHeader" Columns="{StaticResource eventColumns}"/>
</Grid>
FilterV是一个用户控件,我目前简化了它只显示一个文本块。 在Grid中,它可以轻松地显示AreaFilter.Name。 在这两种情况下设置DataContext有何不同,如何解决?