blazor-devexpress-dot-blazor-dot-dxlistbox-2-dot-makedataitemvisibleasync-x28-0-x29.md
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
public Task MakeDataItemVisibleAsync(
TData dataItem
)
| Name | Type | Description |
|---|---|---|
| dataItem | TData |
A data item.
|
| Type | Description |
|---|---|
| Task |
The task that is completed when the row becomes visible.
|
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:
<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);
}
}
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 }
}
MakeDataItemVisibleAsync(TData)
See Also
DxListBox<TData, TValue> Class