正如Brian所說,絕對URI是一個字符串。
像他解釋的定義常數可能是你最好的選擇。你可以使用nameof(ClassType)來獲取URI版本,或者你可以使用nameof()這個步驟來創建一個提供者來生成一個簡單的頁面導航(不是多重的,你的魔術字符串基於一個數組類型。
例如,
_navigation.Navigate(_navigation.CreateURI(nameof(HomePage), nameof(LoginPage), nameof(HelpPage)));
凡CreateURI是一個的NavigationService擴展方法你做這需要在類型頁/ ContentPage的則params的列表。這最終會阻止你使用魔術字符串(保持重構安全),而不需要爲每個實例創建一個單獨的常量。
public static class PrismExtensionMethods {
public static string CreateURI(this INavigationService @this, params string[] pages) {
var result = "";
foreach(var item in pages) {
result += item + "/";
}
return result;
}
}
看看FreshMvvm與ViewModel到ViewModel導航。另一個不錯的選擇是MvvmCross。 –
根據定義,絕對URL需要一個魔術字符串 - 因爲您的應用程序可以託管在任何域中。 – Rob
嗨,對不起,我應該澄清,我的意思是專門用Xamarin形式使用棱鏡。 – Troto