次の形式で項目を表示する Panel または ItemsControl を作成しようとしています。
ヘッダー 1
- サブアイテム 1
- サブアイテム 2
- サブアイテム 3
ヘッダー 2
- サブアイテム 1
- サブアイテム 2
これは簡単ですが、ここでの問題は、アイテムをページ形式で分割できるようにする必要があることです。コントロールの高さに基づいて、収まらないものは次のページに配置されます (など)。サブアイテム間で分割が発生した場合は、次のページにも対応するヘッダーを再表示する必要があります。
MeasureOverride と ArrangeOverride を使用して作業を進めましたが、行き止まりに陥り続けています。これは計算上は些細なことですが、WPF/Silverlight で達成するのは悪夢であるため、非常にイライラします。レポート パッケージを使用したことがある場合、概念はこれと非常によく似ています。
(Dispatcher.BeginInvoke を使用して) コントロールに子を追加するまで、高さを決定できないという事実に何度も戻ってきます。
これを達成するための提案はありますか?前もって感謝します!
編集
[WPF] ObservableCollection および ListBoxItem DataTemplate 生成の問題
この上記のリンクは、mdm20 が提案したものと非常に似ていますが、まだ行き詰まっています。ActualHeight を取得しようとするたびに、0 が返されます。また、Dispatcher.BeginInvoke 操作で呼び出しをラップしない限り、Silverlight 3 の ItemContainerGenerator はコンテナーに対して null を返します。