内の各アイテムのコンテナとして機能するDerivedListBox : ListBox
とを作成しています。DerivedHeaderedContentControl : HeaderedContentControl
ListBox
の展開されたコンテンツに使用できるサイズを計算するために、DerivedHeaderedContentControl
各コンテナ オブジェクトを 内のリストに格納していますDerivedListBox
。このようにして、それぞれのヘッダーの高さを計算し、DerivedHeaderedContentControl
それを で使用できる合計サイズから引くことができますDerivedListBox
。これは、 の展開されたコンテンツに使用できるサイズになりますDerivedHeaderedContentControl
。
public class DerivedHeaderedContentControl : HeaderedContentControl
{
// Do some binding to DerivedListBox to calculate height.
}
public class DerivedListBox : ListBox
{
private List<DerivedHeaderedContentControl> containers;
protected override DependencyObject GetContainerForItemOverride()
{
DerivedHeaderedContentControl val = new DerivedHeaderedContentControl();
this.containers.Add(val);
return val;
}
// Do some binding to calculate height available for an expanded
// container by iterating over containers.
}
がクリアされたとき(またはアイテムソースのアイテムが削除されたとき)DerivedListBox
に問題が発生します。コンテナ リストをクリアできるようItemsSource
に、 がいつクリアされるかを確認するにはどうすればよいですか?ItemsSource