2009-08-13 17 views
0

我有2個ItemsControl彼此平行。第一個是一組帶有屬性名稱的TextBlocks,第二個是一組帶有屬性值的TextBoxes。包裝並行ItemsControls?

Property1值1

Property2值2

Property3值3

「」

名單很長的推移在某些情況下。

是否有辦法在某個點可能會破壞列,並'包裝'兩個ItemsControls,以便它們在同一個容器中開始2個新列(平行於前2個)?

+0

在研究實現這個的黑客示例之前(不知道它是否完全可能,甚至) - 爲什麼你需要兩個單獨的ItemControls?只有一個,兩列有什麼不對? – 2009-08-13 23:27:00

+0

那麼每個ItemsControls都綁定到不同的ObservableCollection。是否有可能在ItemsControl中有一個複合ItemsSource來創建2列? – Johnathan1 2009-08-14 00:12:30

+2

你肯定可以推出你自己的可觀察集合,將來自兩個其他集合的項目聚合爲一對(你總是有一對一的項目匹配,對不對?)。但是,這可能會是一個不同的問題。 – 2009-08-14 04:32:05

回答

0

我非常有信心這不能完成。這甚至不是ItemsControl - 具體 - 你的問題真的歸結爲,「我如何採取兩個單獨的WPF控件,並讓他們的孩子以交錯方式顯示?」。它只是不會這樣工作 - 畢竟,ItemsControl仍然是UIElement,並有明確定義的WidthHeight。在你的例子中,有兩個交錯ItemsControl s,每個的寬度是多少?

0

我對此問題的理解是,您正在動態創建屬性 n,值 n TextBlocks。

主持整個事情在 WrapPanel控制。

對於每一對動態創建,創建一個新的網格控制,並將其放置在該電網控制兩個的TextBlocks並放置在 WrapPanel控制電網控制的TextBlocks的。


編輯帕維爾的評論之後,我知道你現在有兩個列表作爲兩個單獨的獨立控制。我的解決方案提出了完全不同的方法

+0

什麼是「每一對」?他在這裏只有2個「ItemControl」。 – 2009-08-13 23:26:02

+0

@Paul:哎呀,我誤解了這個問題,我正在考慮每一對文本塊,但你說得對,他們只是兩個單獨的名單。 – 2009-08-13 23:42:53