2011-09-27 71 views
0

我有一个父视图模型,其中包含其他视图模型(相同类型)(儿童)的集合。在初始化时,孩子的数量将被决定(变化)。在ItemsControl中调整面板

子视图由一个按钮和一个列表框组成。最初,列表框是隐藏的。点击按钮时,列表框出现,并在外部点击(控件外部或任何其他子按钮)。

仅在init上显示按钮。我希望这些按钮在可用宽度上分开。要求是,一旦按钮被点击(当显示列表框时),整个孩子的宽度将增加(比方说350),并且当它隐藏时,它将恢复到原始大小。

在父项中,我使用ItemsControl来显示子视图。我已经尝试了所有控件,但无法为此找到合适的解决方案。我有两个问题:

  1. 按钮单击我可以显示当前列表框。如果我点击另一个按钮,第一个按钮就会熄灭。直到这里它工作正常。但我还需要当前打开的列表框关闭点击控制之外的任何地方(子控件)

  2. 如何根据点击的内容自动调整大小和调整大小。首先,所有的都应该是大小适中的,然后当点击时它的大小会增加(这里其他孩子会调整其余空间的大小)。当一个(开放控制)崩溃时,他们全部恢复到正常丙酸酯大小。

任何想法?

顺便说一句,我正在使用MVVM模式。

+0

这还不清楚。什么是“和点击外部”的意思? – Paparazzi

+0

外面意味着当前打开的面板 – Shankar

回答

0

如何使用标志指示视图执行计算并刷新/根据需要重新调整大小。

类似于点击式例行程序,每当查看(预)绘画/绘图事件被踢入时,在 上设置标志,检查标志是否打开,执行计算并确定尺寸,然后关闭标志。

+0

我不确定你在推荐什么。我的第一个问题是,我应该在项目控制中使用什么控件。它是堆栈/包装/统一网格/网格控制?在任何情况下,我使用的控制都不应该在主窗口之外。目前无论我使用什么,如果没有更多的pannels和更多的选择(这使得它的宽度更大),它会超出窗口的范围 – Shankar

+0

如果您的子控件继续移出容器,向我看问题是容器问题,请尝试anohter承办商。 – Kelmen

+0

什么容器,我已经尝试了一切,如上所述。父控件使用包含项目控件的网格 – Shankar