2012-04-09 82 views
0

在silverlight中,有一堆容器装满控件并且能够在MVVM模式友好的同时仅显示其中一个容器的最佳方式是什么。我记得Winforms中有些东西需要做类似的事情,但我想知道Silverlight或工具包中是否有任何东西?Silverlight布局 - 一次一个面板

------------------------------------------- 
    |      View     | 
    | 
    | Containers: 
    | 
    |  ----- ----- ----- ----- 
    |  | | | | | | | | 
    |  | | | | | | | | 
    |  ----- ----- ----- ----- 
    |  
    |    ^
    |    | 
    |   currently 
    |    active    
    |------------------------------------------| 
+0

您可以发布一个模拟了你想要什么呢? – cadrell0 2012-04-09 15:27:51

+0

你不是指TabControl吗? – Phil 2012-04-09 15:36:46

+0

@Phil不,Tabs不是我要找的。我在右边有一组选项,并根据哪个选项得到纠正,我想显示该容器,它是控件,而其他人隐藏。完全像java中的[CardLayout](http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/CardLayout.html)。 – 2012-04-09 15:45:22

回答

1

我确定有很多方法可以实现您想要的功能。

风格化的TabControl是一种方式。

这将是另一个:

<Grid> 
    <Grid Visibility="{Binding Panel1Visibility}"> 
     ... contents 
    </Grid> 
    <Grid Visibility="{Binding Panel2Visibility}"> 
     ... contents    
    </Grid> 
    ... etc 
</Grid> 

您将有许多重复的部分,在这里网格但它们可以是任何东西。将可见性绑定到单个可见性属性。 还是有一个VisibilityProperty和转换器,像

<Grid> 
    <Grid Visibility="{Binding VisiblePanelNo, 
      Converter={StaticResource PanelVisibilityConverter}, ConverterParameter=1}"> 

    </Grid> 
    <Grid Visibility="{Binding VisiblePanelNo, 
      Converter={StaticResource PanelVisibilityConverter}, ConverterParameter=2}"> 
    </Grid> 
    ... etc 
</Grid> 
+0

谢谢..有效。 – 2012-04-09 17:43:16