Windows phone 7 ExpanderView,延迟加载扩展事件上的项目

Windows phone 7 ExpanderView,延迟加载扩展事件上的项目,windows-phone-7,silverlight-toolkit,expander,Windows Phone 7,Silverlight Toolkit,Expander,我对将ExpanderView控件用于以下行为感兴趣: 我知道在填充标题时是否应该有可扩展的项目,但我不知道有多少,并且在点击标题以扩展它之前不想添加项目(例如,因为需要使用web请求检索项目) 我最终会将ExpanderControl作为列表中的项,但我首先使用的是最简单的场景 这似乎是一个常见的场景,延迟加载可扩展项 因此,我在扩展事件中实现了简单的代码,以加载尚未加载的项目: if (!expanded) { for (var x = 1; x <= 10; x++)

我对将ExpanderView控件用于以下行为感兴趣:

  • 我知道在填充标题时是否应该有可扩展的项目,但我不知道有多少,并且在点击标题以扩展它之前不想添加项目(例如,因为需要使用web请求检索项目)
  • 我最终会将ExpanderControl作为列表中的项,但我首先使用的是最简单的场景
这似乎是一个常见的场景,延迟加载可扩展项

因此,我在扩展事件中实现了简单的代码,以加载尚未加载的项目:

if (!expanded)
{
    for (var x = 1; x <= 10; x++)
    {
        ((ExpanderView)sender).Items.Add(new TextBlock() { Text = "Added this on expanded " + x.ToString() });
    }

    expanded = true;
}
如果(!展开)
{
对于(var x=1;x在添加项目后,尝试在expanderview上执行UpdateLayout()。如果在扩展的侦听器中执行扩展,则只需执行以下操作

private void expander_Expanded(object sender, System.Windows.RoutedEventArgs e)
{
     // add item here
     ((ExpanderView) sender).UpdateLayout()
}
添加项目后,请尝试在expanderview上执行UpdateLayout()。如果在扩展的侦听器中执行扩展,则只需执行以下操作

private void expander_Expanded(object sender, System.Windows.RoutedEventArgs e)
{
     // add item here
     ((ExpanderView) sender).UpdateLayout()
}