我在一個視圖模型第一種方法,即 :棱鏡從區域
1)利用Prism刪除視圖模型註冊我的ViewModels在一個容器(在這種情況下的統一)。
2)我爲每個vm提供一個DataTemplate
(UserControl)。
3)我使用在Container註冊的ViewModel名稱進行導航。
_regionManager.RequestNavigate(regionName, viewModelName, navigationCallBack);
這工作得很好,但是當我試圖從該區域中刪除 「查看」,我得到以下異常:
The region does not contain the specified view. Parameter name: view
我試圖刪除:
var region = _regionManager.Regions[requests[i].RegionName];
var view = region.Views.Single(v => v.GetType().Name == requests[i].ViewName);
region.Remove(view);
ViewModel在「視圖」集合中找到。任何想法什麼是錯的,以及如何解決這個問題?
http://compositewpf.codeplex.com/discussions/396304 我的視圖模型被打上IRegionMemberLifetime.KeepAlive 並返回假的,我不知道這是什麼意思是棱鏡刪除視圖時但因爲我現在不需要它,所以我只是將它刪除了。 –