2
我有以下幾點:RelayCommand和WeakReference的
public MainViewModel(IDataService dataService)
{
_dataService = dataService;
NotWorkingCommand = new RelayCommand(() =>
dataService.GetData((item, error) =>
{
if (error != null)
{
// Report error here
return;
}
WelcomeTitle = item.Title;
}));
}
是否有人可以解釋爲什麼我RelayCommand
會停止一段時間後啓用?我懷疑它與RelayCommand
中使用的WeakReference
有關,但我沒有使用WeakReference
的經驗。如果我使用_dataService.GetData
代替,它將起作用。
感謝您的回答。我不明白的是,它之前一直在工作,直到在RelayCommand中使用WeakReference。在舊版本的Mvvmlight中,WeakReference未被使用。 –
在以前的版本中,RelayCommand上的Execute方法是 'public void Execute(object parameter) { _execute(); }'相比現在'公共虛擬無效執行(對象參數) { 如果(CanExecute(參數) && _execute!= NULL &&(_execute.IsStatic || _execute.IsAlive)) { _execute.Execute( ); } }' –