0
我在我的項目中有一個自定義ItemsControl
,我試圖爲它編寫一個樣式,它將控件本身的一個項目列表與一個Dependency屬性上的項目列表組合在一起。綁定範圍 - 樣式和模板
這裏是我的資源字典中相應的XAML:
<x:Array Type="{x:Type System:Object}" x:Key="Static_CloudItems">
<Button>One</Button>
<Button>Two</Button>
<Button>Three</Button>
</x:Array>
<Style TargetType="{x:Type ControlsBase:CloudControl}" x:Key="BasicCloudStyle">
<Setter Property="ItemsSource">
<Setter.Value>
<CompositeCollection>
<CollectionContainer Collection="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ControlsBase:CloudControl}}, Path=CloudItems}" />
<CollectionContainer Collection="{StaticResource Static_CloudItems}" />
</CompositeCollection>
</Setter.Value>
</Setter>
</Style>
然後在我的控制/窗/不管各自的代碼:
<ControlsBase:CloudControl Style="{DynamicResource BasicCloudStyle}">
<ControlsBase:CloudControl.CloudItems>
<x:Array Type="{x:Type System:Object}">
<Button>Four</Button>
<Button>Five</Button>
</x:Array>
</ControlsBase:CloudControl.CloudItems>
</ControlsBase:CloudControl>
的想法是,風格上應該結合具有任何元素的靜態元素在每個實例版本的控件上定義。
我的問題是,上面的綁定不起作用(我也意識到了爲什麼!)所以我需要一種方式來綁定到樣式的父級,但由於setter不在視覺/邏輯樹,只是一個屬性我有點困惑如何進行。