Проблема с гармошкой в ​​silverlight - PullRequest
0 голосов
/ 18 января 2011

У меня есть список строк, которые я зацикливаю, а затем добавляю их в аккордеон. Когда я добавлю их все, я хочу, чтобы последний элемент раскрылся. Код выглядит так:

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 голосов
/ 23 января 2011

Мне удалось решить вопрос. Я думаю, что проблема была где-то в цикле, и, вероятно, специфична для моего кода. Я сделал следующее:

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

часть в цикле, поэтому он будет установлен после завершения цикла, например:

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

И это заставило его работать как шарм.

0 голосов
/ 18 января 2011

Это прекрасно работает для меня, используя текст "Lore Ipsum ..", инструментарий Accordion и кучу AccordionItems - проблема должна быть в некоторых ваших кодах, которые вы здесь не видите. Можете ли вы опубликовать трассировку стека и XAML?

...