2015-08-22 68 views
0

是否可以在wpf中的列表框/列表视图中显示空行?我一直试图在我的数据之后复制行的重复模式,所以列表框看起来“完整”,但我还没有设法弄清楚如何做到这一点。问题是只有在observablecollection中有数据绑定时,listbox才会显示,所以如果没有数据,listbox不会渲染任何东西,即使有数据,它也只会显示行的数量。observablecollection在行下面没有任何东西。我希望能够在数据之后的列表框中出现空行,或者尽可能使空行重复出现。任何帮助或提示,将不胜感激。WPF:即使列表框/列表视图为空也显示空行

回答

1

有几种方法来实现这一结果: 1)增加更多的(空)行到您的收藏 2)使用一个单独的集合,它包装您的收藏,并包含一个空行(如果你不这是有用的” t想要用额外的数据污染你的源代码) 3)创建一个自定义的面板来使用(而不是StackPanel,WrapPanel等)你的ItemsControl可以用来显示项目 - 然后面板本身处理显示空行。这是一个比1和2更强大,更简单的解决方案,但需要更多的努力和WPF知识。
4)创建ItemsControl(或ListBox/ListView)的子类,该子类自动添加额外的项目以填充剩余空间(类似于(3),但不是自定义面板插入ListBox中,而是自定义ListBox以创建如果你想在不同的上下文中重用逻辑,而消费者可能希望改变使用的面板类型,这很有用。

+0

我实际上正在做第一种方法(添加空行),唯一的问题是,我不知道如何控制添加的行数,因为我不想要滚动条出现,否则会消除重复模式的错觉。但是,如果实际数据需要滚动条,我显然希望有人出现 – cravie

+0

在这种情况下,你必须做数学,根据你的列表框的高度(W这可以根据布局而改变)以及单个物品的高度。您应该能够动态访问这两个值,并在当时更新数据源,但查找要使用的最佳事件可能会非常棘手。在这种情况下,创建自定义面板可能会更容易,因为自动触发的度量/布局事件已经就位,您只需执行计算并添加项目(在本例中为控件,而不是数据源)。 – Turntwo

相关问题