2015-08-22 69 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

相關問題