2012-09-03 33 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

相关问题