0

Windows 8 メトロ スタイル アプリケーションを開発しています。私のアプリケーションには、次のデータ テンプレートを含むページが含まれています。「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" は、その "Title" と "Time" プロパティのみを読み込みます。しかし、各アイテムが表示されているときは、「説明」もロードする必要があります。リクエストを送信してサーバー側から取得する「説明」。そのリクエストを送信するには、各アイテムが表示されたときに「Onshown」またはその他のイベントが必要です(スクロール)。

4

1 に答える 1

0

UI の仮想化をサポートするデフォルトの ItemsPanel を使用してコンテンツが ItemsControl (ListView など) に表示される場合、画面に表示されるアイテム (およびおそらく隣接するいくつかのアイテム) のみにレイアウト コンテナーが生成されるため、Loaded イベントは、探しています。また、ビュー モデル プロパティ (「プロバイダー」など) のゲッターにアクセスすると、これらのアイテムが表示されると想定することもできますが、DataTemplate 以外からアクセスしないように注意する必要があります。

于 2012-09-03T14:45:50.893 に答える