我有一個簡單的問題,爲什麼在這兩個平臺上我的代碼工作方式不同。 在第一步中,我使用綁定到MainViewModel
中UI中的按鈕的命令發送消息。WP8和Win8中的Messanger差異
private RelayCommand<Set> _setCommand;
public RelayCommand<Set> SetCommand
{
get
{
return _setCommand
?? (_setCommand = new RelayCommand<Set>(
set =>
{
_navigationService.Navigate("QuestionView", set);
Messenger.Default.Send<Set, QuestionViewModel>(set);
}));
}
}
在第二步驟中在我在構造寄存器QuestionViewModel
消息是這樣的:
Messenger.Default.Register<Set>(this, Load);
在此解決方案我使用PCL到共享平臺之間的代碼。
在第三步中,我想火災荷載的方法,很簡單:
private void Load(Set set)
{
Load(set, 1);
}
而在Windows應用商店項目一切正常,如我所料,但在Windows Phone項目的Load
方法firied不第一次,只有第二次。所以我必須去QuestionView
--沒什麼,回去再進入,現在一切正常。 Load
方法被解僱。 問題是什麼?
最佳, 托馬斯
在此之後,我得到了一個TargetInvocationException關於我在'QuestionViewModel'中調用的一個服務'IQuestionService',我不能在ViewModelLocator中註冊這個服務,因爲Google說它是在PCL中,所以我應該註冊這些服務? –