【发布时间】:2018-09-18 08:14:45
【问题描述】:
我目前有一个List<List<Path>>,我想在组合框项目中显示内部列表。大致像这个伪:
<ComboBox>
<ComboBoxItem Content="3 paths"/>
<ComboBoxItem Content="3 paths"/>
<ComboBoxItem Content="3 paths"/>
<ComboBoxItem Content="3 paths"/>
</Combobox>
编辑:添加图片
这就是现在的样子
这大概就是我想要的样子
在图像中,每一行都是一个列表,其中包含另一个列表,其中包含三角形。
因此,如果最外面的列表中有 4 个列表项,每个列表项都有 3 个路径,我希望它们像上面那样显示。 我现在的设置是这样的
Xaml:
<ComboBox ItemsSource="{Binding Path=AvailableCombinationsOfShape}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Path Data="{Binding Path=Data}" StrokeThickness="1" Stroke="Black"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
后面的代码:
AvailableCombinationsOfShape = new List<List<Path>>();
foreach (var combination in combinations)
{
var r = CombineShapes(GetImageShapes(), combination);
AvailableCombinationsOfShape.Add(r);
i++;
}
private List<Path> CombineShapes(List<SymbolShapeModel> shapes, int[] numbersNotToFill)
{
var pathList = new List<Path>();
foreach (var shape in shapes)
{
var p = new Path();
p.Data = shape.Shape;
pathList.Add(p);
}
return pathList;
}
这样,我将每个列表中的第一个形状显示在组合框中,但我希望显示所有 3 个形状。
我想要这样的原因是因为我想为每个组合框项目中的一些形状着色。 (想象 3 个方块。我希望第一个项目显示方块 1 和 2 的颜色,项目 2 应该显示方块 2 和 3 的颜色,最后一个项目应该显示方块 1 和 3 的颜色。)
希望有人可以帮助我! 谢谢!
【问题讨论】:
-
你需要什么从大帖中不是很清楚。我猜你有一个分层列表(即列表或项目......其中每个项目可以有一个或多个项目)。您要显示的(如果我没记错的话)是一个 Combobox,其项目是所有 List Ietms 和内部项目的联合。让我知道这是否正确。
-
您是要让用户选择单个事物还是一组事物?如果是后者,如何将数据模板更改为保存 ItemsControl,并将 ItemsSource 设置为内部列表?
-
@PrateekShrivastava 我已经更新了图片。希望这让它更清楚一点:)
-
@RobinBennett ItemsControl 可能会起作用。我将如何绑定到 itemscontrol 列表中的列表? :)
-
nvm @RobinBennett。谢谢!