我正在创建 aDerivedListBox : ListBox
和 a DerivedHeaderedContentControl : HeaderedContentControl
,它们将作为ListBox
.
为了计算DerivedHeaderedContentControl
s 的扩展内容可用的大小,我将每个容器对象存储在DerivedListBox
. 这样我可以计算每个标题的高度,DerivedHeaderedContentControl
然后从可用的总大小中减去DerivedListBox
. 这将是可用于 a 的扩展内容的大小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
'sItemsSource
被清除(或项目源中的项目被删除)时,问题就出现了。如何确定何时ItemsSource
清除,以便我可以清除容器列表?