所以我有類似下面的一些代碼:(請原諒我試圖在SO編輯一職,以簡化任何typos--)的DataContext在Style.Trigger沒有約束力
<my:CustomContentControl>
<my:CustomContentControl.Style>
<Style TargetType="{x:Type my:CustomContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CurrentView}" Value="MyCustomView">
<Setter Property="Content">
<Setter.Value>
<my:CustomView DataContext="{Binding DataContextForMyCustomView"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</m:CustomContentControl.Style>
</my:CustomContentControl>
的問題是,每當出現DataTrigger
,設置者確實設置Content
屬性爲my:CustomView
,但它不是不是綁定DataContext
。如果我在觸發器之外移動相同的代碼,DataContext
綁定工作得很好。
任何想法?如果這是某種限制,是否有任何解決方法?
更新:
我收到在輸出窗口中出現以下錯誤:
System.Windows.Data Error: 3 : Cannot find element that provides DataContext. BindingExpression:Path=DataContextForMyCustomView; DataItem=null; target element is 'CustomView' (Name='customView'); target property is 'DataContext' (type 'Object')
在輸出窗口中是否有關於此綁定的錯誤或警告消息? –
@Miklós:很好的建議,謝謝。呃,它讓我忘記了輸出窗口中出現綁定錯誤!更新我的問題瓦特/錯誤現在... – HolySamosa
@HolySamosa你的UserControl是什麼?你發佈的錯誤使得它聽起來像它沒有'DataContext'的對象,比如'DataGridColumn.Header'。此外,如果多個對象應用了該樣式,您應該使用'ContentTemplate'而不是'Content'來避免異常。 – Rachel