正如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