Example #1
0
        public MainWindowViewModel()
        {
            this.ClearSearchCommand          = new DelegateCommand(() => Keyword = string.Empty);
            this.LoadSettingCommand          = new DelegateCommand(() => LoadSetting());
            this.SaveSettingCommand          = new DelegateCommand(() => SaveSetting());
            this.TextBoxEnterKeyEventCommand = new DelegateCommand <string>(async(keyword) =>
                                                                            await Task.Run(async() =>
            {
                if (string.IsNullOrEmpty(keyword))
                {
                    return;
                }

                Result result = await GetResult(keyword);

                DispatchService.Invoke(() =>
                {
                    Meanings.Clear();

                    ScrollToTop?.Invoke();

                    if (result != null && result?.Meanings?.Count > 0)
                    {
                        Meanings.AddRange(result.Meanings);
                    }
                    else
                    {
                        meanings.Add(new Meaning {
                            Word = $"未找到 (´;ω;`)"
                        });
                    }
                });
            }));
        }
        private async Task Initialise()
        {
            IsRunning = true;
            RaisePropertyChanged("IsRunning");
            IEnumerable <Models.LeaderSummary> summaries = await _leaderService.GetLeadersAsync(false);

            int myId = await _userService.GetMyUserIdAsync();

            foreach (Models.LeaderSummary summary in summaries)
            {
                LeaderSummaryViewModel vm = new LeaderSummaryViewModel(summary);
                vm.IsMe = (summary.id == myId);

                Leaders.Add(vm);
            }

            IsRunning = false;
            RaisePropertyChanged("IsRunning");

            SearchResults = Leaders;
            RaisePropertyChanged("SearchResults");

            var mysummary = Leaders.FirstOrDefault(l => l.IsMe == true);

            ScrollToMe?.Invoke(mysummary);
            var firstLeader = Leaders.FirstOrDefault();

            ScrollToTop?.Invoke(firstLeader);
        }