Пример #1
0
 protected GistsView(bool searchbarEnabled)
     : base(unevenRows: true, searchbarEnabled: searchbarEnabled)
 {
     this.WhenActivated(d =>
     {
         d(SearchTextChanging.Subscribe(x => ViewModel.SearchKeyword = x));
     });
 }
Пример #2
0
        protected BaseIssuesView()
            : base(unevenRows: true)
        {
            Title = "Issues";

            this.WhenActivated(d =>
            {
                d(SearchTextChanging.Subscribe(x => ViewModel.SearchKeyword = x));
            });
        }
Пример #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            SearchTextChanging.Subscribe(x => ViewModel.SearchKeyword = x);

            this.BindList(ViewModel.Users, x =>
            {
                var e     = new UserElement(x.Login, string.Empty, string.Empty, x.AvatarUrl);
                e.Tapped += () => ViewModel.GoToUserCommand.Execute(x);
                return(e);
            });
        }
Пример #4
0
        private void textBoxSearch_TextChanged(object sender, EventArgs e)
        {
            DataTable data        = (DataTable)dgv.DataSource;
            string    filterField = dgv.Columns[1].Name;

            SearchTextChanging.Invoke();

            data.DefaultView.RowFilter = string.Format(CultureInfo.InvariantCulture,
                                                       "[{0}] LIKE '%{1}%'", filterField, textBoxSearch.Text);
            foreach (DataGridViewRow row in dgv.Rows)
            {
                RowData rowData = (RowData)row.Cells[2].Value;
                rowData.RowIndex = row.Index;
            }

            SearchTextChanged.Invoke(this, null);
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            SearchTextChanging.Subscribe(x => ViewModel.SearchKeyword = x);

            this.BindList(ViewModel.Languages, x =>
            {
                var el     = new StringElement(x.Name);
                el.Tapped += () => ViewModel.SelectedLanguage = x;
                if (ViewModel.SelectedLanguage != null && string.Equals(x.Slug, ViewModel.SelectedLanguage.Slug))
                {
                    el.Accessory = UITableViewCellAccessory.Checkmark;
                }
                return(el);
            });
        }
Пример #6
0
        protected BaseRepositoriesViewController()
            : base(unevenRows: true)
        {
            SearchTextChanging.Where(x => ViewModel != null).Subscribe(x => ViewModel.SearchKeyword = x);

            this.WhenAnyValue(x => x.ViewModel)
            .Where(x => x != null)
            .Select(x => x.Repositories.Changed.StartWith(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)))
            .Switch()
            .Subscribe(_ =>
            {
                var sec = new Section();
                sec.AddAll(
                    from x in ViewModel.Repositories
                    select new RepositoryElement(x.Owner, x.Name, x.Description, x.ImageUrl, () => ViewModel.GoToRepositoryCommand.ExecuteIfCan(x)));
                Root.Reset(sec);
            });
        }
Пример #7
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            SearchTextChanging.Where(x => ViewModel != null).Subscribe(x => ViewModel.SearchKeyword = x);

            TableView.RegisterNibForCellReuse(RepositoryTableViewCell.Nib, RepositoryTableViewCell.Key);
            TableView.RowHeight          = UITableView.AutomaticDimension;
            TableView.EstimatedRowHeight = 80f;

            this.WhenAnyValue(x => x.ViewModel)
            .Where(x => x != null)
            .Select(x => x.Repositories.Changed.StartWith(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)))
            .Switch()
            .Subscribe(_ =>
            {
                var sec = new Section();
                sec.AddAll(
                    from x in ViewModel.Repositories
                    select new RepositoryElement(x.Owner, x.Name, x.Description, x.ImageUrl, () => ViewModel.GoToRepositoryCommand.ExecuteIfCan(x)));
                Root.Reset(sec);
            });
        }
Пример #8
0
        private void TextBoxSearch_TextChanged(object sender, EventArgs e)
        {
            DataTable data        = (DataTable)dgv.DataSource;
            string    filterField = dgv.Columns[1].Name;

            SearchTextChanging?.Invoke();

            string searchString = textBoxSearch.Text.Trim();
            string like         = string.Empty;

            string[] splittedParts = searchString.Split(" ");
            if (splittedParts.Length > 1)
            {
                foreach (string splittedPart in splittedParts)
                {
                    string and = string.Empty;
                    if (!string.IsNullOrEmpty(like))
                    {
                        and = $" AND [{filterField}]";
                    }

                    like += $"{and} LIKE '%{splittedPart}%'";
                }
            }
            else
            {
                like = $"LIKE '%{searchString}%'";
            }

            try
            {
                data.DefaultView.RowFilter = $"[{filterField}] {like}";
            }
            catch (Exception ex)
            {
                if (ex is EvaluateException ||
                    ex is SyntaxErrorException)
                {
                    Log.Warn($"searchString \"{searchString}\" is a invalid", ex);
                }
                else
                {
                    throw;
                }
            }

            if (string.IsNullOrEmpty(searchString))
            {
                data.DefaultView.Sort = string.Empty;
            }
            else
            {
                string columnSortIndex = "SortIndex";

                foreach (DataRow row in data.Rows)
                {
                    if (row[1].ToString().StartsWith(
                            searchString,
                            StringComparison.InvariantCultureIgnoreCase))
                    {
                        row[columnSortIndex] = 0;
                    }
                    else
                    {
                        row[columnSortIndex] = 1;
                    }
                }

                data.DefaultView.Sort = columnSortIndex;
            }

            foreach (DataGridViewRow row in dgv.Rows)
            {
                RowData rowData = (RowData)row.Cells[2].Value;
                rowData.RowIndex = row.Index;
            }

            SearchTextChanged.Invoke(this, null);
        }