這可能是一個MVVM光的問題不是一個問題WinRT的更多,但我有一個使用MVVM光和SQLite用C#編寫的應用程序。這是一個電視節目庫應用程序,可在主頁上顯示所有系列節目。然後,您可以深入瞭解您擁有的劇集等等。無論如何,我使用mvvm-light messenger將數據從系列庫頁面的視圖模型發送到情節頁面的視圖模型。我在收到消息時使用SQLite填充名爲CombinedVMs的ObservableCollection < object> collection。FatalExecutionEngineError
麻煩的是,似乎是我得到這樣的導航真正的隨機誤差。錯誤是代碼80131544,我無法從調試器獲得任何其他信息,因爲「原生框架位於調用堆棧之上」。這個錯誤似乎總是停留在我的CombinedVMs集合上,通常當我嘗試添加它的時候。有時,當我點擊後退按鈕時發生錯誤,並且在CombinedVMs集合被清除的地方調用一個方法。有時候我可以在很多次之間來回切換,有時我可以在碰到錯誤之前做兩次。
這隻發生在我身上時,我改變了我的代碼,從在劇集視圖上使用分組的GridView控件轉換爲使用ItemTemplateSelector區分季節標題和劇集的非分組GridView。我使用CombinedVMs(ObservableCollection < object>)來保存SeasonItemViewModels和EpisodeItemViewModels。
我想知道,如果這有因與我是如何已經設置了代碼的MVVM光部分。以下是我如何進行導航。
public RelayCommand GoToSeriesCommand
{
get
{
return _gotoSeriesCommand ?? (_gotoSeriesCommand = new RelayCommand(() =>
{
SimpleIoc.Default.GetInstance<SeriesViewModel>();
Messenger.Default.Send<NavigateToSeriesViewMessage>(new NavigateToSeriesViewMessage()
{
FolderGuid = this.FolderGuid,
DisplayName = this.DisplayName,
FanartPathList = this.FanartPathList,
SeriesId = this.SeriesId
});
MainViewModel._navigationService.Navigate(typeof(SeriesView));
}));
}
}
我ViewModelLocator有這個它是相關的:
static ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
SimpleIoc.Default.Register<INavigationService, DesignNavigationService>();
}
else
{
SimpleIoc.Default.Register<IDataService, DataService>();
SimpleIoc.Default.Register<INavigationService>(() => new NavigationService());
}
SimpleIoc.Default.Register<SeriesViewModel>();
}
public SeriesViewModel SeriesVM
{
get
{
return ServiceLocator.Current.GetInstance<SeriesViewModel>();
}
}
static public SeriesViewModel SeriesVMStatic
{
get
{
return ServiceLocator.Current.GetInstance<SeriesViewModel>();
}
}
不管怎麼說,我很爲難。我不知道如何繼續。微軟論壇上有一個關於這個特定錯誤代碼的話題,但是它是從去年開始的,並且聲稱它已經從更新中修復。
我能提供什麼嗎?我不知道該從哪裏出發....在此先感謝!
謝謝。沒有意識到我有一個答案。對不起,不提前信用。事實上,我幾乎不能記住這個問題。 :( 我確實有很多使用SQLite的問題......尤其是嘗試使用它們的異步代碼。 – 2013-06-29 19:54:35