ウィンドウがあり、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();
}
しかし、表示されているウィンドウでは、Loaded プロパティにブレークポイントを設定すると ICommand 変数が初期化されていますが、例外はスローされません。Initialized イベントを使用するように変更しようとしましたが、それでも同じです。これは、同じアプリにある別のウィンドウで正常に機能するため、すべてを正しく行っているとほぼ確信しています。何か不足している可能性がありますか? コード ビハインドでバインドすると正常に動作しますが、mvvm パターンに準拠したいと考えています。前もって感謝します。