基于该区域的注册视图的不同控制

时间:2011-09-07 14:23:15

标签: c# wpf xaml unity-container prism-4

我正在构建一个复合应用程序,除其他外,它提供了一个插件区域(基于统一)来注册视图。

问题在于我希望根据已注册视图的数量为该区域设置不同的布局。特别是我希望为“一个注册的”案例提供一个巨大的(向所有方向拉伸)单个区域,并为“>”创建一个两列(统一)网格。 1查看注册'案例。

所以 - 现在我有(简化)这样的东西:

    <ItemsControl 
        rgn:RegionManager.RegionName="{x:Static Member=i:RegionNames.MainContentRegion}"
        HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" 
        VerticalAlignment="Stretch" VerticalContentAlignment="Stretch">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                 <UniformGrid Columns="2" 
                    VerticalAlignment="Stretch" 
                    HorizontalAlignment="Stretch" /> 
            </ItemsPanelTemplate>                
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <ContentPresenter 
                   HorizontalAlignment="Stretch" 
                   VerticalAlignment="Stretch" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

如果观点是动态的〜并在其他地方注册,我怎样才能涵盖特殊的“仅限一元素”的案例?

1 个答案:

答案 0 :(得分:0)

当Items.Count == 1时,您可以使用Trigger将ItemsPanelTemplate更改为另一个面板。