我对使用具有以下行为的ExpanderView控件感兴趣:
似乎这是一个常见的场景,懒得加载可扩展的项目。
所以我在Expanded事件中实现了简单的代码,以加载尚未加载的项目:
if (!expanded)
{
for (var x = 1; x <= 10; x++)
{
((ExpanderView)sender).Items.Add(new TextBlock() { Text = "Added this on expanded " + x.ToString() });
}
expanded = true;
}
这个问题是第一次没有正确呈现项目(控件下方的任何内容都没有被“按下”以允许项目的空间),可能是因为控件不能提前知道项目内容。在后续扩展时,项目会正确显示。
任何人都知道如何使用ExpanderView实现这种延迟加载?
答案 0 :(得分:3)
添加项目后,尝试在expandderview上执行UpdateLayout()。如果您在Expanded监听器中进行扩展,则可以执行以下操作。
private void expander_Expanded(object sender, System.Windows.RoutedEventArgs e)
{
// add item here
((ExpanderView) sender).UpdateLayout()
}