2011-09-27 61 views
0

我有一個父視圖模型,其中包含其他視圖模型(相同類型)(兒童)的集合。在初始化時,孩子的數量將被決定(變化)。在ItemsControl中調整面板

子視圖由一個按鈕和一個列表框組成。最初,列表框是隱藏的。點擊按鈕時,列表框出現,並在外部點擊(控件外部或任何其他子按鈕)。

僅在init上顯示按鈕。我希望這些按鈕在可用寬度上分開。要求是,一旦按鈕被點擊(當顯示列表框時),整個孩子的寬度將增加(比方說350),並且當它隱藏時,它將恢復到原始大小。

在父項中,我使用ItemsControl來顯示子視圖。我已經嘗試了所有控件,但無法爲此找到合適的解決方案。我有兩個問題:

  1. 按鈕單擊我可以顯示當前列表框。如果我點擊另一個按鈕,第一個按鈕就會熄滅。直到這裏它工作正常。但我還需要當前打開的列表框關閉點擊控制之外的任何地方(子控件)

  2. 如何根據點擊的內容自動調整大小和調整大小。首先,所有的都應該是大小適中的,然後當點擊時它的大小會增加(這裏其他孩子會調整其餘空間的大小)。當一個(開放控制)崩潰時,他們全部恢復到正常丙酸酯大小。

任何想法?

順便說一句,我正在使用MVVM模式。

+0

這還不清楚。什麼是「和點擊外部」的意思? – Paparazzi

+0

外面意味着當前打開的面板 – Shankar

回答

0

如何使用標誌指示視圖執行計算並刷新/根據需要重新調整大小。

類似於點擊式例行程序,每當查看(預)繪畫/繪圖事件被踢入時,在 上設置標誌,檢查標誌是否打開,執行計算並確定尺寸,然後關閉標誌。

+0

我不確定你在推薦什麼。我的第一個問題是,我應該在項目控制中使用什麼控件。它是堆棧/包裝/統一網格/網格控制?在任何情況下,我使用的控制都不應該在主窗口之外。目前無論我使用什麼,如果沒有更多的pannels和更多的選擇(這使得它的寬度更大),它會超出窗口的範圍 – Shankar

+0

如果您的子控件繼續移出容器,向我看問題是容器問題,請嘗試anohter承辦商。 – Kelmen

+0

什麼容器,我已經嘗試了一切,如上所述。父控件使用包含項目控件的網格 – Shankar