2
我有一個窗口,並使用MVVM光工具包綁定到Loaded事件:MVVM光工具包沒有發射窗口已加載事件
<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屬性中放置一個斷點時,不會拋出異常。我試圖改變使用初始化事件,但仍然是同樣的事情。這在我在同一個應用程序中的另一個窗口中工作正常,所以我幾乎可以肯定我正在做的一切都正確 - 可以有我失蹤的東西?當我使用代碼隱藏進行綁定時,它工作正常,但我想遵守mvvm模式。 在此先感謝。
你可以發佈您使用的是CreateAsyncRelayCommand的代碼?我用一個標準的RelayCommand試了一下,它按預期工作。 – 2010-07-03 05:16:31