У меня есть вид и установить его DataContext для соответствующего ViewModel. В обработчике событий Loaded в выделенном коде View я хочу установить некоторые свойства на виртуальной машине. Тем не менее, DataContext представления является нулевым в этой точке.
В xaml:
Loaded="UserControl_Loaded"
<UserControl.Resources>
<viewModels:PageViewModel x:Key="vm" />
</UserControl.Resources>
В обработчике Loaded, page.xaml.cs:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
PageViewModel pvm = this.DataContext as PageViewModel;
System.Diagnostics.Debug.WriteLine("pvm is " + ((null == pvm) ? "null" : pvm.ToString()));
}
Я что-то не так делаю или виртуальная машина еще не доступна, когда View запускает событие Loaded?
ОБНОВЛЕНИЕ: реальная проблема заключается в том, что виртуальная машина не подключается к представлению. В UserControl_Loaded pvm имеет значение null.
В настоящее время я устанавливаю DataContext для корневого элемента макета; это должно быть установлено на UserControl? Если да, то как?
Спасибо за понимание ...