Skip to main content

AutoCompleteEditBase.LoadingProgressMode Property

Gets or sets whether a wait indicator is displayed automatically or manually. This is a bindable property.

Namespace: DevExpress.Maui.Editors

Assembly: DevExpress.Maui.Editors.dll

NuGet Package: DevExpress.Maui.Editors

Declaration

public LoadingProgressMode LoadingProgressMode { get; set; }

Property Value

Type Default Description
LoadingProgressMode Auto

Auto if a wait indicator is displayed when the entered text is changed, and is hidden when the collection of items is updated; Manual to use a dedicated property to show and hide a wait indicator.

Available values:

Name Description
Auto

A wait indicator is displayed when the text in the edit box changes and hidden when the collection of suggestions is updated.

Manual

A wait indicator is displayed and hidden based on the IsLoadingInProgress property value.

Remarks

If the LoadingProgressMode property is set to Auto, the editor automatically displays a wait indicator in the drop-down window when the text in the edit box changes, and automatically hides it when the ItemsSource collection is updated.

In Manual mode, use the IsLoadingInProgress property to show and hide the wait indicator. You can also use the WaitIndicatorColor property to specify its color.

Example

The code below handles the TextChanged event to supply suggestions.

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:dxe="clr-namespace:DevExpress.Maui.Editors;assembly=DevExpress.Maui.Editors"
             xmlns:local="clr-namespace:DemoCenter.Forms.Views"
             x:Class="DemoCenter.Forms.Views.AutoCompleteEditView">
    <ContentPage.BindingContext>
        <local:AutoCompleteEditViewModel/>
    </ContentPage.BindingContext>
    <ContentPage.Content>
        <dxe:AutoCompleteEdit TextChanged="AutoCompleteEdit_TextChanged" 
                              ItemsSource="{Binding ItemsSource}"
                              LoadingProgressMode="Manual"/>
    </ContentPage.Content>
</ContentPage>
using System;
using System.ComponentModel;
using System.Linq;
using System.Threading.Tasks;
using DevExpress.Maui.Editors;

namespace DemoCenter.Forms.Views {
    // View
    public partial class AutoCompleteEditView : ContentPage {
        private void AutoCompleteEdit_TextChanged(object sender, DevExpress.Maui.Editors.AutoCompleteEditTextChangedEventArgs e) {
            AutoCompleteEdit edit = sender as AutoCompleteEdit;
            AutoCompleteEditViewModel viewModel = edit.BindingContext as AutoCompleteEditViewModel;
            if (e.Reason == DevExpress.Maui.Editors.AutoCompleteEditTextChangeReason.UserInput) {
                edit.IsLoadingInProgress = true;
                Task.Factory.StartNew(new Action(() => {
                    Thread.Sleep(3000);
                    Dispatcher.Dispatch(new Action(() => {
                        viewModel.ItemsSource = Model.Queries.Where(i => i.Contains(edit.Text)).ToList<string>();
                        edit.IsLoadingInProgress = false;
                    }));
                }));
            }
        }
    }
    // View Model
    public class AutoCompleteEditViewModel : INotifyPropertyChanged {
        List<string> itemsSource = new List<string>();
        public List<string> ItemsSource { get { return itemsSource; } set { itemsSource = value; OnPropertyChanged(nameof(ItemsSource)); } }

        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPropertyChanged(string propertyName) {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    // Model
    class Model {
        public static List<string> Queries = new List<string>();
        static Model() {
            Queries.Add("California");
            Queries.Add("Colorado");
            Queries.Add("Connecticut");
        }
    }
}
See Also