我對Xamarin Forms應用程序使用Prism和Unity容器。在Prism.Unity.Forms中取消註冊View和ViewModel
我在哪裏註冊我的網頁這樣
Container.RegisterTypeForNavigation<ViewType,ViewModelType>();
有時
Container.RegisterTypeForNavigation<ViewType>();
現在我要註銷一些註冊頁面與他們一起視圖模型。
喜歡的東西
Container.UnRegisterTypeForNavigation<ViewType>();
但它不能想出一個辦法。需要幫忙。
到目前爲止,我已經試過了,
ContainerRegistration registrationContainer = Container.Registrations.FirstOrDefault(obj => obj.MappedToType == GetPageType(pageType));
if (registrationContainer?.LifetimeManager!=null)
{
registrationContainer.LifetimeManager.RemoveValue();
}
沒有運氣。
原因,我想註銷...
我有兩個觀點
Project.Namespace1.ViewA
Project.Namespace2.ViewA
現在我想開Project.Namespace1.ViewA
是某些情況下,以及在其他情況下Project.Namespace2.ViewA
。
這可以作爲
NavigationService.NavigateAsync("ViewA");
它定位到上次查看在團結容器中註冊完成。 這就是爲什麼我要在註冊新視圖之前取消註冊以前的視圖。
你爲什麼要這樣做?取消註冊視圖不會隱藏視圖,也不會註銷視圖模型。 – Haukinger
Unity沒有開箱即用的註銷方法。您可以查看清除註冊的答案:https://stackoverflow.com/a/44361488/114664。不過,我同意@Haukinger這可能不是一個好主意。你想達到什麼目的? –
我更新了我的問題,並註銷了意見後的原因。希望這可以幫助。 – Yogesh