我有一個視圖,它包含一個ContentControl,它的ContentTemplate根據視圖模型中的布爾屬性動態更改,使用數據觸發器。觸發數據觸發後設置控件的DataContext
<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路徑錯誤:)。
我試圖明確規定的觸發控制與數據上下文:但是它仍然使用默認的控制(MyFirstControl)作爲其數據上下文
<local:MySecondControl DataContext="{Binding}"/>
。
我的問題是,我如何強制觸發的控件使用相同的數據上下文作爲它所在的視圖文件?
我對WPF場景相當陌生,所以我希望這是有道理的!
在此先感謝。
非常感謝! – user1097734