Я даже не знаю, как это выразить, поэтому мне очень жаль, если название сбивает с толку. Мой XAML (упрощенный) выглядит так:
<UserControl x:Class="PBA.Application.Client.UserControls.UserControls.FreqReserve.OverView" xmlns:FreqReserve="clr-namespace:PBA.Application.Client.UserControls.UserControls.FreqReserve">
...
<DockPanel>
<UserControls:LegendControl>
<UserControls:LegendControl.Items>
<UserControls:LegendItem Visibility="{Binding Path=IsDirtyVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type FreqReserve:OverView}}, Converter={StaticResource btvc}}" Identifier="Pink" Text="Ikke sendt"></UserControls:LegendItem>
<UserControls:LegendItem Identifier="Yellow" Text="Sendt"></UserControls:LegendItem>
<UserControls:LegendItem Identifier="LightGreen" Text="Accepteret"></UserControls:LegendItem>
<UserControls:LegendItem Identifier="White" Text="Ikke accepteret"></UserControls:LegendItem>
</UserControls:LegendControl.Items>
</UserControls:LegendControl>
</DockPanel>
</UserControl>
где список LegendItem создан по шаблону внутри элемента управления legend.
Выражение привязки завершается с ошибкой System.Windows.Data: 4. Вместо этого я пытался использовать имя элемента с теми же результатами. Я предполагаю, что это как-то связано с тем, что LegendItems на самом деле не находятся непосредственно в визуальном дереве, но я понятия не имею (знаю, новичок в WPF). Что я делаю не так?