public class Navigator : PhoneApplicationPage
{
private static Navigator _instance;
private static object _lock = new object();
public static Navigator Instance
{
get
{
lock (_lock)
{
if (_instance == null)
{
_instance = new Navigator();
}
return _instance;
}
}
private set
{
lock (_lock)
{
_instance = value;
}
}
}
private Navigator(){}
public bool NavigateTo(string uri)
{
lock (_lock)
{
return NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}
}
}
在ViewModel类中调用它:
Navigator.Instance.NavigateTo("/NotePage.xaml");
所以我得到了这个,而NavigationService.Navigate(..)抛出了NullReferenceException。
我如何解决这个/什么是替代方案?我想从ViewModel类中使用NavigationService。
我更喜欢不需要安装更多组件(MVVM灯)的解决方案。如果这绝对不可能,我会查看Messenger / Message类。
修改 我几乎放弃了。我通过创建一个可以包裹所有内容的超链接按钮来解决我的问题。