0

内の各アイテムのコンテナとして機能するDerivedListBox : ListBoxとを作成しています。DerivedHeaderedContentControl : HeaderedContentControlListBox

の展開されたコンテンツに使用できるサイズを計算するために、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

4

1 に答える 1

0

この特定のシナリオでは、おそらくItemsContainerGenerator.ItemsChangedイベントを使用する必要があります。

于 2009-10-26T23:55:17.487 に答える