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");
}
}
}