Предполагая, что вы имеете в виду из базы данных имя страницы, для которой вы хотите определить имя отображаемой страницы.
Я возьму самый простой пример, когда все страницы находятся в одной сборке приложения и в одном известном пространстве имен. Это может быть так просто, как это: -
Type pageType = Assembly.GetExecutingAssembly().GetType("SilverlightApplication1." + pageName);
RootVisual = (UIElement)Activator.CreateInstance(pageType);
Возможно, более гибким подходом будет сохранение в базе данных AssemblyQualifiedName
. Таким образом, страница может находиться в другой сборке и / или пространстве имен, она должна присутствовать только в XAP (я не уверен, может ли она быть в zip-библиотеке библиотеки кэшированных сборок) Если имя страницы - AssemblyQualifiedName
, тогда код становится: -
Type pageType = Type.GetType(pageName);
RootVisual = (UIElement)Activator.CreateInstance(pageType);