我正在创建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
的{{1}}被清除(或项目来源中的项目被删除)时会出现问题。如何确定何时清除ItemsSource
以便清除容器列表?