我有一个循环字符串列表,然后将它们添加到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);
}
这个工作正常,但是一旦我点击任何其他手风琴项目或关闭最后一个,我就会超出范围异常。有没有其他方法可以做到这一点,或者知道我得到异常的原因并且可以提供帮助。 感谢
答案 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;
这使它像魅力一样工作。