这让我发疯。也许我的数据设计错误,但我试图从父 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>