Back to Devexpress

DxTagBox<TData, TValue>.SelectedDataItemsChanged Event

blazor-devexpress-dot-blazor-dot-dxtagbox-2-63343199.md

latest5.4 KB
Original Source

DxTagBox<TData, TValue>.SelectedDataItemsChanged Event

Fires when selection changes.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
[Parameter]
public EventCallback<SelectedDataItemsChangedEventArgs<TData>> SelectedDataItemsChanged { get; set; }

Event Data

The SelectedDataItemsChanged event's data class is SelectedDataItemsChangedEventArgs<TData>. The following properties provide information specific to this event:

PropertyDescription
ChangeSourceIdentifies an action that causes selection change. Inherited from SelectionChangedEventArgs.
DataItemsReturns a collection of currently selected items.

Remarks

Handle the SelectedDataItemsChanged event to respond to item selection changes. This event fires in the following cases:

  • When users change item selection.
  • When Values and Tags properties are changed in code. This also includes the first render.

The SelectedDataItemsChanged event allows you to use the following argument properties in a handler:

razor
<DxTagBox Data="@Staff.DataSource" @bind-Values="@Values"
          ValueFieldName="@nameof(Person.Id)"
          TextFieldName="@nameof(Person.Text)"
          SelectedDataItemsChanged="(SelectedDataItemsChangedEventArgs<Person> args) =>
                                    OnSelectedDataItemsChanged(args)" />

<p>@msg</p>

@code {
    string msg;

    IEnumerable<int> Values { get; set; } = Staff.DataSource.Take(12).Select(t => t.Id);

    void OnSelectedDataItemsChanged(SelectedDataItemsChangedEventArgs<Person> args) {
        if (args.ChangeSource == SelectionChangeSource.ParameterChange) 
            msg = "Selection changed in code. The selected item: " +
                args.DataItems.First().FirstName + " " + args.DataItems.First().LastName;
        else 
            msg = "Selection changed by a user action. The selected item: " +
                args.DataItems.First().FirstName + " " + args.DataItems.First().LastName;
    }
}
csharp
namespace StaffData {
    public static class Staff {
        private static readonly Lazy<List<Person>> dataSource = new Lazy<List<Person>>(() => {
            var dataSource = new List<Person>() {
                new Person() { Id= 0 , FirstName="John", LastName="Heart", Department=Department.Electronics },
                new Person() { Id= 1 , FirstName="Samantha", LastName="Bright", Department=Department.Motors },
                new Person() { Id= 2 , FirstName="Arthur", LastName="Miller", Department=Department.Software },
                new Person() { Id= 3 , FirstName="Robert", LastName="Reagan", Department=Department.Electronics },
                new Person() { Id= 4 , FirstName="Greta", LastName="Sims", Department=Department.Motors },
                new Person() { Id= 5 , FirstName="Brett", LastName="Wade", Department=Department.Software },
                new Person() { Id= 6 , FirstName="Sandra", LastName="Johnson", Department=Department.Electronics },
                new Person() { Id= 7 , FirstName="Edward", LastName="Holmes", Department=Department.Motors },
                new Person() { Id= 8 , FirstName="Barbara", LastName="Banks", Department=Department.Software },
                new Person() { Id= 9 , FirstName="Kevin", LastName="Carter", Department=Department.Electronics },
                new Person() { Id= 10, FirstName="Cynthia", LastName="Stanwick", Department=Department.Motors },
                new Person() { Id= 11, FirstName="Sam", LastName="Hill", Department=Department.Electronics }};
            return dataSource;
        });
        public static List<Person> DataSource { get { return dataSource.Value; } }
    }

    public class Person {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public Department Department { get; set; }
        public string Text => $"{FirstName} {LastName} ({Department} Dept.)";
        public override bool Equals(object obj) {
            if (obj is Person typedObj) {
                return (this.Id == typedObj.Id) && (this.FirstName == typedObj.FirstName) && (this.LastName == typedObj.LastName)
                && (this.Department == typedObj.Department);
            }
            return base.Equals(obj);
        }
    }
    public enum Department { Motors, Electronics, Software }
}

See Also

DxTagBox<TData, TValue> Class

DxTagBox<TData, TValue> Members

DevExpress.Blazor Namespace