これは私を狂わせています。データを間違って設計したのかもしれませんが、親の ItemsControl からアクティブなアイテムにバインドしようとしています。
画面上で簡単に識別できるように、すべての領域に色が付けられます。各座席に色のプロパティを与える代わりに、エリア モデルに色を植えました。すべてのチャイルド シートは、その色を使用してペイントする必要があります。
何を試しても、親の ItemsControl に到達できないため、その特定の領域のアクティブな色のプロパティを取得できます。
モデル(簡略化)
public class BuildingLayout
{
public ObservableCollection<Area> Areas { get; set; }
}
public class Area
{
public Color Color { get; set; } // The color I want to bind to
...
public ObservableCollection<Table> Tables { get; set; }
}
public class Table
{
public int Seat { get; set; } // The seat needs to get the area color
}
XAML
<ItemsControl ItemsSource="{Binding Path=Areas}">
...
<ItemsControl.ItemTemplate>
<!-- Nested Listbox -->
<ItemsControl ItemsSource="{Binding Path=Tables}">
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<!-- Now I want to get to the color property of
the parent (Area) -->
<Rectangle Fill="{Binding ..., Path=Color}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ItemsControl.ItemTemplate>
</ItemsControl>