2012-01-15 2 views
1

я определил мое полное ViewModel с помощью XAML:Назначить содержимое файла xaml свойству App.ViewModel?

<local:TestViewModel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:icColors" 
        SampleProperty="Sample Text Property Value"> 

    <local:TestViewModel.Questions> 
    .... 
    </local:TestViewModel.Questions> 
</local:TestViewModel> 

Как можно разобрать этот код XAML во время выполнения и установить в качестве свойства моего приложения, App.TestViewModel?

ответ

1

Вы можете разобрать XAML во время выполнения, используя класс XAMLReader. Просто проанализируйте свой XAML, используя метод XamlReader.Load, затем назначьте его (помните, чтобы отличить результат). Вот пример кода:

System.Windows.Resources.StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(uri); 

if ((streamInfo != null) && (streamInfo.Stream != null)) 
{ 
    using (System.IO.StreamReader reader = new System.IO.StreamReader(streamInfo.Stream)) 
    { 
     TestViewModel vm = System.Windows.Markup.XamlReader.Load(reader.ReadToEnd()) as TestViewModel; 
    } 
} 
Смежные вопросы