我在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;
}
答案 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;
}
}