银色手风琴的问题

时间:2011-01-18 13:18:43

标签: c# silverlight accordion

我有一个循环字符串列表,然后将它们添加到Accordion中。当我添加所有这些时,我希望最后一项扩展。代码如下所示:

for (int i = 0; i < ivDialogList.Count; i++)
        {
            AccordionItem ai = new AccordionItem();
            ai.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            ai.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch;
            ai.Content = ivDialogList[i].Message;
            ai.Header = ivDialogList[i].PostType + " " + ivDialogList[i].User + " " + ivDialogList[i].PostDate;

            if (i == ivDialogList.Count - 1)
                ai.IsSelected = true;

            content.Items.Add(ai);

        }

这个工作正常,但是一旦我点击任何其他手风琴项目或关闭最后一个,我就会超出范围异常。有没有其他方法可以做到这一点,或者知道我得到异常的原因并且可以提供帮助。 感谢

2 个答案:

答案 0 :(得分:0)

这对我使用“Lore Ipsum ..”文本,工具包Accordion和一堆AccordionItems都很好 - 问题必须出在你未在这里展示的一些代码中。你可以发布一个堆栈跟踪和XAML吗?

答案 1 :(得分:0)

我设法解决了这个问题。我认为问题出在循环的某个地方,可能特定于我的代码。我做的是我移动了:

if (i == ivDialogList.Count - 1)
            ai.IsSelected = true;

参与循环输出,因此它将在循环完成后设置,如下所示:

((AccordionItem)content.Items[ivDialogList.Count - 1]).IsSelected = true;

这使它像魅力一样工作。