Динамически генерировать объекты XAML - PullRequest
4 голосов
/ 31 августа 2010

У меня есть приложение Silverlight, которое отображает количество «страниц». Каждая страница представляет собой отдельный файл XAML с другим кодом. Страницы нумеруются последовательно следующим образом: page_1, page_2, page_3, ..., Page_n. Страницы не являются статичными и будут генерироваться динамически.

Так как я не знаю общего количества страниц, мне нужно загружать каждую страницу во время выполнения, используя ключевое слово Dynamic. Мой код выглядит следующим образом, работает отлично:

Type type = Type.GetType("Pages.Page_" + (index).ToString(), true);
dynamic newPage = Activator.CreateInstance(type);

Моя проблема в том, что я только что узнал, что приложение должно быть Silverlight 3, и в результате оно не сможет использовать динамический тип. Я попытался изменить «динамический» на «объект», но мне нужно иметь возможность доступа к XAML на каждой странице и манипулировать XAML. Если бы все, что мне было нужно, это получить доступ к свойствам и методам, я мог бы следовать решению для создания динамических объектов здесь .

Как я могу динамически создавать каждую страницу и при этом иметь доступ к XAML?

1 Ответ

1 голос
/ 31 августа 2010

Я предполагаю, что каждая страница является UserControl.Если это так, то вы уже там.Вместо создания динамических объектов создайте группу объектов UserControl.

Измените свой код следующим образом:

Type type = Type.GetType("Pages.Page_" + (index).ToString(), true);
UserControl newPage = (UserControl)Activator.CreateInstance(type);
...