我正在研究一個新的c#MVVM light現代ui WPF應用程序,並且遇到了一些奇怪的觸發器行爲。所以要描述的情況,這裏是以下內容:MVVM light RelayCommand觸發兩次
我有一個帶有觸發器的XML視圖。 (已裝入的方法如實施例)
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding LoadedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
與relaycommand(LoadedCommand從抽象模型)構造函數
public MovieListModel()
{
LoadedCommand = new RelayCommand(LoadData);
}
private void LoadData()
{
Debug.WriteLine("MovieListModel - LoadData");
}
問題: 應用程序啓動時的loadedcommand被稱爲1次(良好)。當我導航到應用程序內的其他頁面時,第一個和新視圖LoadedCommand被觸發。其他命令也會觸發兩次。我猜測如果我想在後面加入一些編程邏輯,這將成爲一個問題。
完整的Debug.WriteLine是如下:
ModernUserControl - OnNavigatingFrom
MovieListModel - NavigatingFrom
ModernUserControl - OnNavigatingFrom event called
ModernUserControl - OnNavigatedFrom
MovieListModel - NavigatedFrom
ModernUserControl - OnNavigatedFrom event called
ModernUserControl - OnNavigatedTo
MovieListModel - LoadData
SettingsModel - LoadData
信息: 我發現在示例程序這個問題在這裏找到:https://github.com/saramgsilva/ModernUISamples,在我自己的應用程序。我還在github上啓動了一張票,瞭解這是否是問題/錯誤。 (還沒有答覆)
你說你使用加載作爲一個例子,你有沒有試着用其他的活動?因爲我知道加載是觸發兩次 – Moddaman