У меня есть пользовательский ItemsControl
в моем проекте, и я пытаюсь написать для него стиль, который объединяет статический список элементов со списком элементов в свойстве зависимости в самом элементе управления.
Вот соответствующий 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>
Идея в том, что стильследует комбинировать статические элементы с любыми элементами, определенными в издании элемента управления для каждого экземпляра.
Моя проблема заключается в том, что приведенное выше связывание не работает (и я тоже понял, почему!) Так что мне нуженспособ привязки к родителю стиля, но так как сеттер не находится в визуальном / логическом дереве, просто свойство, которое я немного озадачен тем, как действовать дальше.