public async void Execute_OnSearchClick() { if (Searching) { return; } Searching = true; DispatcherService.InvokeIfRequired(() => _tweets.Clear()); if (_tweetSearchService != null && !string.IsNullOrEmpty(SearchString)) { await _tweetSearchService.GetMeSomeTweets <LinqTweet>(newTweets => { if (newTweets != null) { DispatcherService.InvokeIfRequired(() => _tweets.AddRange(newTweets)); } Searching = false; if (OnSearchComplete != null) { OnSearchComplete(); } }, SearchString); } }
/// <summary> /// If this ViewModel's View houses other injectable View's, this method will be useful /// </summary> /// <param name="type"></param> /// <param name="region"></param> /// <returns></returns> /// <remarks>Only call this for a nested control once the parent has been loaded</remarks> protected virtual TView RegisterAndActivateView <TView>(string region = null) where TView : class { if (!string.IsNullOrWhiteSpace(region)) { Logger.Default.Debug("Activating view {0}", typeof(TView).Name); TView view = null; DispatcherService.InvokeIfRequired(() => SwitchView(region, out view)); return(view); } return(null); }
public DisplayViewModelBase(ITweetService tweetService) { _tweetSearchService = tweetService; CanSwitchView = true; Searching = false; if (_tweets == null) { DispatcherService.InvokeIfRequired(() => { _tweets = new ObservableCollectionEx <LinqTweet>(); TweetSearchTweets = new ListCollectionView(_tweets); }); } }