0

いくつかの異なるデータ型を含むコレクションが取り込まれた ItemsControl を使用しています。各データ型には独自の DataTemplate があり、すべて正しく表示されていますが、私の問題は次のとおりです。同じ型が次々に表示される場合、最初のものはその上にヘッダーを表示し、最後のものは表示する必要がありますその下の水平線。XAML でこれを検出する方法はありますか、またはフラグを設定するためにこのリストを少し前処理する必要がありますか?

データは次のとおりです。

Patient
Test
Result <-- header before this
Result
Result <-- line after this
Test
Result <-- header before, line after
Patient
Comment <-- header before this
Comment
Comment <-- line after this
Test
Result <-- header before, line after

表示する前にデータ型をグループ化したくありません。到着した順に表示する必要があります。

4

2 に答える 2

0

ItemsControl をどこかで定義された CollectionViewSource のリソース キーにバインドすることでメリットが得られると思います。CollectionViewSource.GroupDescriptions[1] を使用して、これを UI に表示できる場合があります。

ItemsControl.GroupStyleこれをスタイルする方法については、[2] を参照してください。

[1] http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.groupdescriptions.aspx

[2] http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.groupstyle.aspx

于 2013-01-15T16:00:43.967 に答える
0

各アイテムの次/前の兄弟にそのタイプについて尋ね、それを現在のアイテムのタイプと比較し、両方がアイテムと等しいか等しい場合は何もしないことを考慮する必要があります...間違いなくこれを行うことはできません純粋な xaml。

私にとって最も簡単な方法は、アイテムのビューモデルに 2 つの bool プロパティを実装し、そこでロジックを処理することです'HeaderVisible''BottonLineVisible'DataTemplate でトリガーをバインドして、必要に応じて上/下の行を追加します。

于 2013-01-15T16:30:12.973 に答える