【发布时间】:2013-08-21 07:42:54
【问题描述】:
例如,我需要在我的 ListBoxItems 中的项目之间合并一个分隔符 我的项目源中的一些项目将放置在分隔符下方和上方。
例如:
以上是通过改变 ListBox 的 ControlTemplate 来完成的:
<ScrollViewer>
<StackPanel>
<ItemsPresenter />
<Separator BorderBrush="Red" />
<ListBoxItem Content=".." ContentTemplate="..." x:Key="helpItem"/>
</StackPanel>
</ScrollViewer>
问题是“helpItem”没有被选中,因为它不是我的 ItemsSource 的一部分。
现在可以选择就足够了
1)所以我的第一个问题是我如何将这个项目与我的 ItemsSource 或替代 让它可选择?
未来我可能不希望有更多的物品被放置在 我的列表框的下半部分
2) 我将如何在我的物品之间的给定位置物理上放置一个分隔符,好像将我的 ItemsPresenter 在一个合乎逻辑的位置?
【问题讨论】:
-
我以前也有这个。我堆叠了多个列表框并设置了它们的边框,以使其具有单个列表框的外观,但在表面之下,每个磅都有自己的项目源。唯一棘手的一点是协调选择手势,以便最终用户的“体验”只看到一个被选中的项目。
-
有点想避免这种情况:)
-
如果您想使用单个控件,仍然有一个答案:从 VirtualizingStackPanel 派生一个类并为它实现您自己的 ItemsControlGenerator。我以前也这样做过,并且可以证明它会给你所追求的。不利的一面是,我不会将编写 ICG 视为一种完全愉快的体验。 :)
标签: wpf listbox listboxitem