У меня есть окно и я использую легкий инструментарий MVVM для привязки к событию Loaded:
<Window
...
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
...
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<cmd:EventToCommand Command="{Binding Loaded, Mode=OneWay}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Window>
, и в моей модели представления у меня есть следующее:
private ICommand _loaded;
public ICommand Loaded
{
get
{
if (_loaded == null)
{
_loaded = CreateAsyncRelayCommand(p => OnLoaded());
}
return _loaded;
}
}
public void OnLoaded()
{
throw new NotImplementedException();
}
, нов показанном окне исключение не выдается, хотя переменная ICommand инициализируется, когда я ставлю точку останова в свойстве Loaded.Я попытался перейти на использование события Initialized, но все еще то же самое.Это прекрасно работает в другом окне, которое есть в том же приложении, поэтому я почти уверен, что все делаю правильно - может быть, что-то мне не хватает?Когда я связываюсь с code-behind, он работает нормально, но я хочу придерживаться шаблона mvvm.Заранее спасибо.