データトリガーを使用してビューモデル内のブールプロパティに応じてContentTemplateが動的に変更されるContentControlを含むビューがあります。
<ContentControl>
<!-- MyFirstControl user control by default-->
<local:MyFirstControl/>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected}"
Value="True">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<!-- Different user control when trigger fired-->
<local:MySecondControl />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
トリガーが起動されたときに表示されるMySecondControlユーザーコントロールは、テキストブロックを表示することを目的としています。テキストブロックのTextプロパティは、同じビューモデル内のプロパティにもバインドされます。
私は明らかに間違っていますが、トリガーされたコントロールは同じデータコンテキストを継承すると考えていました。代わりに、MyFirstControlユーザーコントロールをデータコンテキストとして使用しようとしています(このエラーも受け取ります:System.Windows.Dataエラー:40:BindingExpressionパスエラー:)。
トリガーされたコントロールのデータコンテキストを次のように明示的に記述しようとしました。
<local:MySecondControl DataContext="{Binding}"/>
ただし、データコンテキストとしてデフォルトのコントロール(MyFirstControl)を使用しています。
私の質問は、トリガーされたコントロールが、それが含まれているビューファイルと同じデータコンテキストを使用するように強制するにはどうすればよいですか?
私はWPFシーンにかなり慣れていないので、これが理にかなっていることを願っています。
前もって感謝します。