C# 如果某些设置已存在,请更改DefaultTask
在Windows phone 8应用程序中,我需要切换初始视图,而不是始终使用相同的PhoneApplicationPage打开应用程序。i、 e.主页(如果设置已存在)和设置页面(如果用户首次打开应用程序) 我该怎么做呢 目前我采用的方式是: 使WMAppManifest.xml中的默认任务为空C# 如果某些设置已存在,请更改DefaultTask,c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,在Windows phone 8应用程序中,我需要切换初始视图,而不是始终使用相同的PhoneApplicationPage打开应用程序。i、 e.主页(如果设置已存在)和设置页面(如果用户首次打开应用程序) 我该怎么做呢 目前我采用的方式是: 使WMAppManifest.xml中的默认任务为空 <DefaultTask Name="_default" /> 这是处理这种情况的最佳方式吗?我的代码有任何潜在的问题吗?有很多不同的方法可以做到这一点,但没有一种“最佳”方法 我个人
<DefaultTask Name="_default" />
这是处理这种情况的最佳方式吗?我的代码有任何潜在的问题吗?有很多不同的方法可以做到这一点,但没有一种“最佳”方法 我个人的偏好是使用自定义的
UriMapper
,在启动时进行重定向。例如
- 将导航启动Uri设置为不存在的特殊内容。e、 g.“启动”
- 设置自定义UriMapper:
RootFrame.UriMapper = new MyUriMapper();
- 然后在UriMapper中检查特殊uri并采取适当的操作:
public class MyUriMapper : UriMapperBase { public override Uri MapUri(Uri uri) { if (uri.OriginalString == "/StartUp") { if (!this.dataOperations.IsLoggedIn()) { return Login.Path; } else { return Main.Path; } } return uri; } }
public class MyUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
if (uri.OriginalString == "/StartUp")
{
if (!this.dataOperations.IsLoggedIn())
{
return Login.Path;
}
else
{
return Main.Path;
}
}
return uri;
}
}