private async Task AddUserItems(string key)
        {
            Debug.WriteLine("current screen name: " + key);
            if (String.IsNullOrEmpty(key))
            {
                await DispatcherHelper.UIDispatcher.InvokeAsync(() => this._items.Clear());

                return;
            }
            string[] items;
            if (Setting.InputUserSuggestMode.Value == InputUserSuggestMode.All)
            {
                items = (await UserProxy.GetUsersFastAsync(key, 1000))
                        .Select(t => t.Item2)
                        .ToArray();
            }
            else
            {
                items = (await UserProxy.GetRelatedUsersFastAsync(key,
                                                                  Setting.InputUserSuggestMode.Value == InputUserSuggestMode.FollowingsOnly, 1000))
                        .Select(t => t.Item2)
                        .ToArray();
            }
            // re-ordering
            var ordered = items.Where(s => s.StartsWith(key))
                          .OrderBy(s => s)
                          .Concat(items.Where(s => !s.StartsWith(key))
                                  .OrderBy(s => s))
                          .Select(s => new SuggestItemViewModel("@" + s))
                          .ToArray();
            await DispatcherHelper.UIDispatcher.InvokeAsync(
                () =>
            {
                this._items.Clear();
                ordered.ForEach(s => this._items.Add(s));
                this.SelectSuitableItem("@" + key);
            });
        }