ユーザーのコメント ツリーを読み込んでレンダリングする「コメント コントロール」(Silverlight に似た win8 XAML アプリ) を構築しようとしています。
各コメントには、0 個または 1 個以上の子コメントを含めることができます (各コメントを繰り返します)。
各コメントには、作成者、時間、コメント自体などの一連の情報が表示されます。
これを構築するために私が最初に取ったアプローチは、「CommentItem」コントロール バインディングを持つ ListView を使用することです。
<TextBlock Grid.Row="1" TextWrapping="Wrap" Text="{Binding commentText}" FontSize="11" FontFamily="Global User Interface" />
<ListView Grid.Row="2" x:Name="CommentRepliesList" ItemsSource="{Binding}" >
<ListView.ItemTemplate>
<DataTemplate>
<local:CommentItem Tag="{Binding}"></local:CommentItem>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
上記は、各コメントを再帰し、コメントテキストを適用してから、コメントの子ごとに新しいコメントアイテムを作成し、再度再帰するなどです。
ただし、問題は、これが非常に遅く、パフォーマンスが低いことです。
これを行うためのより効率的な方法を知っている人はいますか? ListView はこれに使用する適切なコントロールですか?