2015-04-07 87 views
1

我在Windows 8.1 Store應用程序中有一個XAML頁面。我爲ListView設置了數據上下文,但最初我把它摺疊了。我想要做的是在使其可見之前切換ListView中某些元素的可見性。但它不加載它們,除非它變得可見。所以,爲了強制它加載項目,我試圖將「IsVirtualizing」設置爲false,以便我不必擔心它(我不介意在性能方面出現問題,因爲我沒有那麼多項目)。但對於我所看到的所有例子,我所得到的全部是在Windows 8.1 Store應用程序中設置VirtualizingStackPanel.IsVirtualizing

The property "IsVirtualizing" does not have an accessible setter. 

不知道這裏發生了什麼。

這裏是剝去了其他內容的相關代碼段。

<common:LayoutAwarePage 
    x:Class="FlashMe.DeckView" 
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:FlashMe" 
    xmlns:common="using:FlashMe.Common" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    > 


     <ScrollViewer x:Name="deckScrollViewer" Grid.Row="1" VerticalScrollMode="Disabled" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Margin="0,15,0,0"> 
      <StackPanel x:Name="deckStackPanel" Orientation="Horizontal"> 
       <Grid Width="100" x:Name="MarginBuffer" /> 
       <ListView x:Name="cardsListViewDisplay" Visibility="Collapsed" SelectionMode="None" Width="500" ItemsSource="{Binding Path=FlashCardsAsList}" VirtualizingStackPanel.IsVirtualizing="False"> 
        <ListView.ItemTemplate> 
         <DataTemplate> 
          <Border> 
           <StackPanel Orientation="Vertical" Width="490" Height="400" RightTapped="FlashCardRightClicked"> 
            <Grid Width="490" Height="200" Background="Gainsboro"> 
             <TextBlock Text="{Binding Path=Front}" 
                Foreground="Black" 
                Style="{StaticResource GroupHeaderTextStyle}" 
                Margin="4,0,4,4" 
                FontWeight="SemiBold" 
                VerticalAlignment="Center" 
                HorizontalAlignment="Center" 
                TextWrapping="Wrap" 
                MaxWidth="410"/> 
            </Grid> 
            <Grid Width="500" Height="200" Background="{Binding ElementName=deckStackPanel, Path=DataContext.DeckColorBrush}"> 
             <TextBlock Text="{Binding Path=Back}" 
                Foreground="White" 
                Style="{StaticResource GroupHeaderTextStyle}" 
                Margin="4,0,0,4" 
                FontWeight="SemiBold" 
                VerticalAlignment="Center" 
                HorizontalAlignment="Center" 
                TextWrapping="Wrap" 
                MaxWidth="410"/> 
            </Grid> 
           </StackPanel> 
          </Border> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </StackPanel> 
     </ScrollViewer> 
</common:LayoutAwarePage> 

回答

2

在Windows應用商店應用中,IsVirtualizing屬性爲只讀屬性。

從MSDN上的VirtualizingStackPanel.IsVirtualizingProperty頁面上的備註部分:

VirtualizingStackPanel.IsVirtualizing是一種非典型的附加屬性 ,因爲它沒有一個訪問,因而不是真正的XAML 附加財產與標記使用。相反, VirtualizingStackPanel.IsVirtualizing用作定點由此 子元素可以查詢VirtualizingStackPanel母體,和 確定是否正在使用虛擬化。 ...

+0

我在閱讀MSDN頁面時完全錯過了該部分。謝謝! – Betsegaw

相關問題