ユーザーコントロールのデータコンテキストをビューモデル オブジェクトにバインドしようとしています。不明な理由で、結果として Window.Resources 内に DataContext を設定すると、
System.Windows.Data エラー: 3: DataContext を提供する要素が見つかりません。BindingExpression:Path=AreaFilter; DataItem=null;
window.resources の外で同じ datacontext を設定すると完璧に機能します。コードで問題を解決する必要があります。
<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 は、テキストブロックのみを表示するために現在単純化した UserControl です。グリッド内では、AreaFilter.Name が問題なく表示されます。これら 2 つの状況で DataContext を設定するときの違いと、それを解決する方法は何ですか?