Back to Devexpress

DxListBox<TData, TValue>.MakeDataItemVisibleAsync(TData) Method

blazor-devexpress-dot-blazor-dot-dxlistbox-2-dot-makedataitemvisibleasync-x28-0-x29.md

latest4.7 KB
Original Source

DxListBox<TData, TValue>.MakeDataItemVisibleAsync(TData) Method

Makes the row bound to the specified data item visible on screen.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
public Task MakeDataItemVisibleAsync(
    TData dataItem
)

Parameters

NameTypeDescription
dataItemTData

A data item.

|

Returns

TypeDescription
Task

The task that is completed when the row becomes visible.

|

Remarks

Pass a data item to the MakeDataItemVisibleAsync method to make the corresponding row visible on screen. The method scrolls the item list up or down until the row appears.

The MakeDataItemVisibleAsync method does nothing if no row corresponds to the passed data item.

The following example navigates to the selected data row:

razor
<DxListBox Data="@Staff.DataSource"
           @ref="MyListBox"
           @bind-Value="@SelectedDataItem"
           SelectionMode="ListBoxSelectionMode.Single"
           TextFieldName="@nameof(Person.Text)">
</DxListBox>

<DxButton Text="Go to the selected item" Click="ScrollToFirstSelectedItemAsync" />

@code {
    IListBox<Person, Person> MyListBox; 
    IEnumerable<Person> Values { get; set; } = Staff.DataSource.Take(1);
    Person SelectedDataItem { get; set; }

    async Task ScrollToFirstSelectedItemAsync() {
        if (SelectedDataItem != null)
            await MyListBox.MakeDataItemVisibleAsync(SelectedDataItem);
    }
}
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 override int GetHashCode() {
            return HashCode.Combine(Id, FirstName, LastName);
        }
    }

    public enum Department { Motors, Electronics, Software }
}

Implements

MakeDataItemVisibleAsync(TData)

See Also

DxListBox<TData, TValue> Class

DxListBox<TData, TValue> Members

DevExpress.Blazor Namespace