У меня очень странная проблема, которую мне очень сложно отлаживать, поэтому я снова обращаюсь к SO-сообществу. : -)
Сначала немного о моей настройке (заметьте! Я новичок в Silverlight, просто учусь на собственном опыте, поэтому вся моя предпосылка может быть неправильной!):
У меня есть несколько корневых узлов (форм), под которыми есть несколько листов (вопросов).
Теперь я просто хочу показать / скрыть вопросы в зависимости от того, какая форма выбрана в настоящее время - довольно просто.
Я делаю следующее:
- В LayoutControl добавлено несколько элементов управления (я использую компоненты DeveloperExpress)
- При выборе другой формы созданные элементы управления сохраняются в списке на ранее выбранной форме
- Когда вы выбираете форму, список элементов управления перебирается, и каждый элемент снова добавляется в мой layoutcontrol
Когда я сохраняю элементы в списке в форме, я сначала проверяю .Remove () их родительских элементов, чтобы убедиться, что с этим нет проблем.
И это работает.
Если у меня есть 1 или элементы управления.
Если у меня есть БОЛЬШЕ этого, все добавляется как обычно, исключение не выдается - но Silverlight, очевидно, каким-то образом делает бесконечный цикл? Неважно, запускаю ли я его в IE или Chrome, браузер просто зависает! (Или, я думаю, плагин для браузера).
Я пытался приостановить отладчик во время этого, чтобы увидеть, в чем проблема, но он просто останавливается во «внешнем коде».
Я не думаю, что пример кода принесет много пользы, но вот два метода, которые сохраняют и загружают элементы: (Примечание: AddControl - это метод, который я определил - он оборачивает элемент в другом элементе управления, чтобы обеспечить немного функциональности Аналогично .MyChildren удаляет элемент управления из оболочки с помощью .Remove () и возвращает его)
private void LoadElementsFromCurrentForm()
{
foreach (var child in _currentForm.Elements)
{
layoutControl1.AddControl(child);
}
}
private void SetElementsOnCurrentForm()
{
_currentForm.Elements.Clear();
foreach (var child in layoutControl1.MyChildren)
{
_currentForm.Elements.Add(child);
}
}
Как мне вообще отладить это !?
Я не знаю, имеет ли это значение, но все эти элементы управления также имеют уникальное имя.
Привет
Сорен