AutoCompleteEditBase.IsLoadingInProgress Property
Gets or sets whether a wait indicator is displayed in the drop-down window. This is a bindable property.
Namespace: DevExpress.Maui.Editors
Assembly: DevExpress.Maui.Editors.dll
NuGet Package: DevExpress.Maui.Editors
Declaration
public bool IsLoadingInProgress { get; set; }
Property Value
Type | Default | Description |
---|---|---|
Boolean | false |
|
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");
}
}
}