gpt4 book ai didi

c# - 如何从 NESTED ItemsControl 绑定(bind)到事件的 ItemsControl 项目

转载 作者:行者123 更新时间:2023-11-30 20:01:52 28 4
gpt4 key购买 nike

这让我发疯。也许我的数据设计有误,但我正在尝试从父 ItemsControl 绑定(bind)到事件项目。

每个区域都有一种颜色,以便在屏幕上轻松识别。我没有为每个座位赋予颜色属性,而是在 Area 模型中设置了颜色。所有的 child 座椅都需要用那种颜色来给自己绘制(paint)。

无论我尝试什么,我都无法到达父 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>

最佳答案

<Rectangle Fill="{Binding DataContext.Color, RelativeSource={RelativeSource AncestorType=ItemsControl}"/>

因为嵌套的 ItemsControl 位于父级的 ItemTemplate 内,因此它将具有 Area 实例,因为它是 DataContext。

关于c# - 如何从 NESTED ItemsControl 绑定(bind)到事件的 ItemsControl 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com