Пример #1
0
        //public event search over
        //{
        // 在事件参数中,传递被选中的对象,外部响应这个时间,并进行处理
        //}

        protected virtual void SearchEventTrigger(String key)
        {
            SearchEventArgs sea = new SearchEventArgs();

            sea.SearchKey = key;
            SearchChanged.Invoke(this, sea);
        }
Пример #2
0
        protected virtual async Task OnSearchChanged()
        {
            SearchEventArgs args = new SearchEventArgs();

            args.SearchValue = Grid.Settings.SearchSettings.SearchValue;

            if (SearchChanged != null)
            {
                await SearchChanged.Invoke(this, args);
            }
        }
Пример #3
0
        /// <summary>
        /// Clears the selected value and the search field.
        /// </summary>
        public async Task Clear()
        {
            CurrentSearch = null;
            dropdownRef.Hide();

            SelectedText  = string.Empty;
            SelectedValue = default;

            await SelectedValueChanged.InvokeAsync(selectedValue);

            await SearchChanged.InvokeAsync(CurrentSearch);
        }
Пример #4
0
        protected virtual async Task OnSearchChanged()
        {
            // Filter changes must not init checked keys
            //InitCheckedKeys();

            SearchEventArgs args = new SearchEventArgs();

            args.SearchValue = Grid.Settings.SearchSettings.SearchValue;

            if (SearchChanged != null)
            {
                await SearchChanged.Invoke(this, args);
            }
        }
Пример #5
0
        private async Task HandleDropdownItemClicked(object value)
        {
            CurrentSearch = null;
            dropdownRef.Hide();

            var item = Data.FirstOrDefault(x => EqualityComparer <object> .Default.Equals(ValueField(x), value));

            SelectedText = item != null?TextField?.Invoke(item) : string.Empty;

            SelectedValue = value;

            await SelectedValueChanged.InvokeAsync(SelectedValue);

            await SearchChanged.InvokeAsync(CurrentSearch);
        }
Пример #6
0
        private async Task OnDropdownItemClicked(object value)
        {
            CurrentSearch = null;
            dropdownRef.Hide();

            var item = Data.FirstOrDefault(x => ValueField(x).IsEqual(value));

            SelectedText = item != null?TextField?.Invoke(item) : string.Empty;

            SelectedValue = Converters.ChangeType <TValue>(value);

            await SelectedValueChanged.InvokeAsync(SelectedValue);

            await SearchChanged.InvokeAsync(CurrentSearch);

            await textEditRef?.Revalidate();
        }
Пример #7
0
 public FindBar()
 {
     InitializeComponent();
     BackColor             = ColorTranslator.FromHtml("#4C4A48");
     textBox1.BackColor    = ColorTranslator.FromHtml("#4C4A48");
     textBox1.BorderStyle  = BorderStyle.None;
     pictureBox1.Height    = 20;
     textBox1.ForeColor    = Color.White;
     textBox1.TextChanged += delegate {
         SearchChanged?.Invoke(this, new SearchEventArgs {
             text = textBox1.Text
         });
     };
     Height = 20;
     pictureBox1.MouseClick += delegate(object o, MouseEventArgs args) {
         if (args.Button == MouseButtons.Left)
         {
             close();
         }
     };
     VisibleChanged += delegate {
         if (Visible)
         {
             textBox1.BorderStyle = BorderStyle.None;
             pictureBox1.Size     = new Size(30, textBox1.Height);
             textBox1.Left        = pictureBox1.Right + 10;
             textBox1.Width       = Width - pictureBox1.Width - 25;
             textBox1.Font        = new Font(textBox1.Font.FontFamily, Height / 2);
             textBox1.Focus();
         }
     };
     LocationChanged += delegate {
         pictureBox1.runOnUiThread(() => {
             pictureBox1.Dock     = DockStyle.Left;
             pictureBox1.Size     = new Size(30, 32);
             pictureBox1.Location = new Point(0, 0);
         });
     };
 }
Пример #8
0
        /// <summary>
        /// Handles the search field onchange or oninput event.
        /// </summary>
        /// <param name="text">Serach value.</param>
        /// <returns>Returns awaitable task</returns>
        protected async Task OnTextChangedHandler(string text)
        {
            CurrentSearch = text ?? string.Empty;
            SelectedText  = CurrentSearch;
            dirtyFilter   = true;

            if (text?.Length >= MinLength && FilteredData.Any())
            {
                dropdownRef.Show();
            }
            else
            {
                dropdownRef.Hide();
            }

            //If input field is empty, clear current SelectedValue.
            if (string.IsNullOrEmpty(text))
            {
                await Clear();
            }

            await SearchChanged.InvokeAsync(CurrentSearch);
        }
Пример #9
0
 public void OnSearchChanged(SearchChangedEventArgs e)
 {
     SearchChanged?.Invoke(this, e);
 }
Пример #10
0
        private void InitializeTreeViewCallbacks()
        {
            treeView.SearchChangedCallback += (newSearch) =>
            {
                SearchChanged?.Invoke(newSearch);
                OnSearchChanged(newSearch);
            };

            treeView.DoesElementMatchSearchCallback += DoesElementMatchSearch;

            treeView.KeyboardInputChangedCallback += () =>
            {
                KeyboardInputChanged?.Invoke();
                OnKeyboardInputChanged();
            };

            treeView.SingleClickedElementCallback += id =>
            {
                SingleClickedElement?.Invoke(id);
                OnSingleClickedElement(id);
            };

            treeView.DoubleClickedElementCallback += id =>
            {
                DoubleClickedElement?.Invoke(id);
                OnDoubleClickedElement(id);
            };

            treeView.CanMultiSelectCallback += CanMultiSelect;

            treeView.SelectionChangedCallback += selection =>
            {
                SelectionChanged?.Invoke(selection);
                OnSelectionChanged(selection);
            };

            treeView.ContextClickedElementCallback += id =>
            {
                showContextMenuInNextDraw = true;
                RepaintTree();

                ContextClickedElement?.Invoke(id);
                OnContextClickedElement(id);
            };

            treeView.ContextClickedOutsideElementsCallback += () =>
            {
                ContextClickedOutsideElements?.Invoke();
                OnContextClickedOutsideElements();
            };

            treeView.ElementDrawedCallback += (id, rect) =>
            {
                DrawElementBase(rect, id);
            };

            treeView.ElementsDraggingCallback += (insertIndex, draggedIDs) =>
            {
                ElementsDragging?.Invoke(insertIndex, draggedIDs);
                OnElementsDragging(insertIndex, draggedIDs);

                MoveElementSelection(insertIndex, draggedIDs);

                ElementsDragged?.Invoke(insertIndex, draggedIDs);
                OnElementsDragged(insertIndex, draggedIDs);
            };

            treeView.CanRenameElementCallback     += CanRenameElement;
            treeView.GetElementRenameRectCallback += GetElementRenameRect;
            treeView.ElementRenamedCallback       += RenameElement;
        }
Пример #11
0
 protected virtual void OnSearchChanged(List <Equipment> list)
 {
     SearchChanged?.Invoke(list);
 }