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類:爲什麼不能工作(在Singleton上的NavigationService)?
Navigator.Instance.NavigateTo("/NotePage.xaml");
所以我有這個,和NavigationService.Navigate(..)拋出一個NullReferenceException。
我該如何解決這個問題/什麼是替代方案?我想從ViewModel類使用NavigationService。
我寧願一個解決方案,而不需要安裝更多的組件(MVVM燈)。如果這是絕對不可能的,我會查看Messenger/Message類。
編輯 我幾乎放棄了。我通過創建超鏈接按鈕的樣式來解決我的問題,該按鈕可以環繞所有東西。
例如,您似乎缺少私人構造函數(隱藏建設的替代方法)。你能提供更多的代碼嗎? –
NavigationService.Navigate(..)方法不使用該實例嗎?什麼是導航服務與Navigator類的關係? –
我添加了一個私人構造函數,這是完整的代碼。我如何創建關係?我認爲成爲一個PhoneApplicationPage就足夠了。 – SBoss