我正在开发windows 8 metro风格的应用程序。我的应用程序包含带有以下数据模板的页我将“NewsObject”集合绑定到模板。
<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”只加载其“标题”&amp; “时间”属性。但是当我显示的每个项目我也想加载项目“描述”。 “描述”通过发送请求从服务器端获取。发送该请求我需要“显示”或每个项目显示时的任何其他事件(滚动)。
答案 0 :(得分:0)
如果您的内容显示在ItemsControl(如ListView)中,并且默认的ItemsPanel支持UI虚拟化 - 只有屏幕上显示的项目(可能还有一些相邻的项目)生成了它们的布局容器,因此Loaded事件可能会是你在找什么。您还可以假设当访问视图模型属性的getter(如“Provider”)时 - 会显示这些项目,但是您需要注意不要从DataTemplate以外的任何地方访问它们。