C# 在WPF中,访问列表框中的容器
我正在创建一个DerivedListBox:ListBox和一个DerivedHeaderedContentControl:HeaderedContentControl,它将用作ListBox中每个项目的容器 为了计算DerivedHeaderedContentControl扩展内容的可用大小,我将每个容器对象存储在DerivedListBox内的列表中。通过这种方式,我可以计算每个DerivedHeaderedContentControl的标题高度,并从DerivedListBox可用的总大小中减去该高度。这将是衍生HeaderedContentControl的扩展内容可用的大小C# 在WPF中,访问列表框中的容器,c#,wpf,listbox,itemssource,C#,Wpf,Listbox,Itemssource,我正在创建一个DerivedListBox:ListBox和一个DerivedHeaderedContentControl:HeaderedContentControl,它将用作ListBox中每个项目的容器 为了计算DerivedHeaderedContentControl扩展内容的可用大小,我将每个容器对象存储在DerivedListBox内的列表中。通过这种方式,我可以计算每个DerivedHeaderedContentControl的标题高度,并从DerivedListBox可用的总大小
当DerivedListBox的ItemsSource被清除或items源中的某个项被删除时,就会出现问题。如何确定何时清除ItemsSource以便清除容器列表?对于此特定场景,您可能应该使用event。是否可以从DerivedListBox类中访问通过GetContainerForItemOverride创建的内部容器?我假设它们是在类中管理的,最好是能够访问这些对象,而不是管理我自己的列表。
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.
}