无法在wp8中的代码后面显示全景项目

时间:2014-01-28 14:41:19

标签: windows-phone-7 c#-4.0 windows-phone-8

我在xaml中定义了3个全景项。我为第2和第3个全景项设置visibility = collapsed。

在后面的代码中我设置可见性=在某些条件发生后可见第二和第三全景项目。当我调试代码时,我看到visibility = Visible被执行但是这两个项目只处于折叠状态。可能是什么原因?

        <phone:PanoramaItem Header="enterprise" Visibility="Collapsed"

                            HeaderTemplate="{StaticResource PanoramaItemHeaderTemplate}"
                            Name="enterpriseApps">
            <Grid Margin="16,0,0,0">
                <!--<StackPanel>-->
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <!--<Button x:Name="btnUpdate" Click="btnUpdateAll_Click" Content="Update Apps"
                        FontSize="30" HorizontalAlignment="Left" Visibility="Collapsed"
                        Grid.Row="0" Margin="-10 -10 0 0"/>-->
                    <ListBox x:Name="EnterpriseApplist" Grid.Row="1"
                                ItemsSource="{Binding EnterpriseAppList}"
                                ItemTemplate="{StaticResource AvailableAppDataTemplate}" 
                                SelectionChanged="InstalledCompanyAppList_SelectionChanged"/>
                <TextBlock Name="txtEnterpriseapps" Visibility="Collapsed" Grid.Row="1"/>
            </Grid>
        </phone:PanoramaItem>

        <phone:PanoramaItem Header="uat" Visibility="Collapsed"
                            HeaderTemplate="{StaticResource PanoramaItemHeaderTemplate}"
                            Name="uatApps">
            <Grid Margin="16,0,0,0">
                <!--<StackPanel>-->
                    <ListBox x:Name="UATAppList" 
                                ItemsSource="{Binding UATAppList}"
                                ItemTemplate="{StaticResource AvailableAppDataTemplate}" 
                                SelectionChanged="InstalledCompanyAppList_SelectionChanged">

                    </ListBox>
                    <TextBlock Name="txtUatapps" Visibility="Collapsed"/>
                <!--</StackPanel>-->
            </Grid>
        </phone:PanoramaItem>

        <phone:PanoramaItem Header="demo" Name="demoApps"
                            HeaderTemplate="{StaticResource PanoramaItemHeaderTemplate}">
            <Grid Margin="16,0,0,0">
                <!--<StackPanel>-->
                <ListBox x:Name="DemoAppList"  Visibility="Collapsed"
                                ItemsSource="{Binding DemoAppList}"
                                ItemTemplate="{StaticResource AvailableAppDataTemplate}" 
                                SelectionChanged="InstalledCompanyAppList_SelectionChanged"/>
                <TextBlock Name="txtDemoapps" Visibility="Collapsed"/>
                <!--</StackPanel>-->
            </Grid>
        </phone:PanoramaItem>


    </phone:Panorama>

在代码背后,我写的是

if (App.ViewModel.EnterpriseAppList.Count == 0)
        {
            enterpriseApps.Visibility = Visibility.Visible;

        if (App.ViewModel.UATAppList.Count == 0)
        {
            uatApps.Visibility = Visibility.Visible;
                        }

        if (App.ViewModel.DemoAppList.Count == 0)
        {
           demoApps.Visibility = Visibility.Visible;
                        }

1 个答案:

答案 0 :(得分:1)

全景测量它的大小并在控制初始化时进行排列。您可以像这样更改方法(Panorama的名称是全景):

    if (App.ViewModel.EnterpriseAppList.Count == 0)
    {
        int index1 = panorama.Items.IndexOf(enterpriseApps);
        panorama.Items.RemoveAt(index1);
        panorama.Items.Insert(index1, enterpriseApps);
        enterpriseApps.Visibility = Visibility.Visible;

        if (App.ViewModel.UATAppList.Count == 0)
        {
            int index2 = panorama.Items.IndexOf(uatApps);
            panorama.Items.RemoveAt(index2);
            panorama.Items.Insert(index2, uatApps);
            uatApps.Visibility = Visibility.Visible;
        }

        if (App.ViewModel.DemoAppList.Count == 0)
        {
            int index3 = panorama.Items.IndexOf(demoApps);
            panorama.Items.RemoveAt(index3);
            panorama.Items.Insert(index3, demoApps);
           demoApps.Visibility = Visibility.Visible;
        }
   }