【问题标题】:WrapPanel children orderWrapPanel 儿童订单
【发布时间】:2020-04-14 07:08:31
【问题描述】:

我使用 WPF 并在用户控制面板中添加 WrapPanel 子项。 像这样:

SearchPanel sp = new SearchPanel();
sp.Clock = clock; 
sp.Name = item.CustomerTwo;
sp.Color = "Purple";
wPanel.Children.Add(sp);

我如何组织这个添加的面板

【问题讨论】:

  • 你想如何组织它们?会发生什么?
  • 我在包装中添加了 3 个类型的面板。随机颜色紫色、灰色、红色。我想用颜色对它们进行排序
  • 如果先对它们进行排序,然后将它们添加到WrapPanel,会发生什么?
  • 我不知道该怎么做。代码的所有部分:codepile.net/pile/aVMaPPV9

标签: wpf wrappanel


【解决方案1】:

这个问题的简单答案是它们按照添加到 Children 集合的顺序出现。

如果您使用 XAML 显式添加它们,它们的出现顺序将与它们在 XAML 中出现的顺序相同。

如果您通过绑定 WrapPanel 的 ItemsSource 来添加它们,那么它们将按照绑定集合呈现它们的顺序出现。


至于你的具体例子……

在您的链接代码中,颜色基于从每个“客户”项目间接获得的日期。要基于此订购 WrapPanel,您需要首先按照相同的标准对您的客户项目进行排序。

不幸的是,日期逻辑很复杂(使用与 Days 表的 DB 关系,然后使用一些笨拙的日期操作代码)。您可以在比较函数中使用该复杂的日期逻辑来首先对客户项目进行排序。或者,您可以向“newSearchPanel”类添加一个属性,在构建它们时计算该属性并将它们添加到临时列表中,然后在最终将它们推入 WrapPanel 之前对其进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多