2012-09-03 29 views
0

我正在開發Windows 8 metro風格的應用程序。我的應用程序包含以下數據模板的頁面。我將「NewsObject」集合綁定到模板。顯示或任何其他事件的數據模板項目時,它顯示在Windows 8 metro應用程序

<DataTemplate x:Key="NewsOverlayDataTemplate"> 
     <Grid Height="250" Width="250"> 
       <Grid.Background> 
        <Binding Path="IsView" Converter="{StaticResource headerColorConverter}"/> 
       </Grid.Background> 
      <TextBlock Text="{Binding Title}" Margin="10,3,10,0" TextTrimming="WordEllipsis" TextWrapping="Wrap" 
         Style="{StaticResource NewsTitleTextStyle}" HorizontalAlignment="Left" Foreground="Black"/> 
      <StackPanel Orientation="Vertical" Background="BlueViolet" Height="90" VerticalAlignment="Bottom"> 
       <Grid Margin="10,2,10,0"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="*"/> 
        </Grid.ColumnDefinitions> 
        <TextBlock Grid.Column="0" Text="{Binding Provider}" Height="14" 
         TextTrimming="WordEllipsis" HorizontalAlignment="Left" FontSize="9" Opacity="0.49"/> 
        <TextBlock Grid.Column="1" Height="14" 
         TextTrimming="WordEllipsis" HorizontalAlignment="Right" FontSize="9" Opacity="0.49"> 
         <TextBlock.Text> 
          <Binding Path="Time" Converter="{StaticResource dateFormatConverter}" ConverterParameter="year" /> 
         </TextBlock.Text> 
        </TextBlock> 

最初 「NewsObject」 只加載它的 「標題」 & 「時間」 屬性。但是當顯示的每個項目我也想加載項目「描述」。 「描述」通過發送請求從服務器端獲取。發送該請求我需要「Onshown」或任何其他事件時顯示每個項目(滾動)。

回答

0

如果您的內容顯示在ItemsControl(如ListView)中並且支持UI虛擬化的默認ItemsPanel - 只有屏幕上顯示的項目(也可能是一些相鄰項目)纔會生成其佈局容器,因此Loaded事件可能是你在找什麼。你也可以假設當你的視圖模型屬性(比如「Provider」)的獲取者被訪問時 - 這些項目被顯示出來,但是你需要小心不要從DataTemplate的任何地方訪問它們。

+0

謝謝菲利普,我使用GridView ..如何實現虛擬化? – Sampath

相關問題