Skip to main content

DxListBox<TData, TValue>.Values Property

Provides access to the List Box’s selected value/item collection.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v22.2.dll

Declaration

[Parameter]
public IEnumerable<TValue> Values { get; set; }

Property Value

Type Description
IEnumerable<TValue>

The List Box’s values/items.

Remarks

Use the Values property to access to the List Box’s list of item values/items from a bound data source. To respond to selection changes, handle the ValuesChanged event.

The Values property can return the following objects:

  • The selected item values if the ValueFieldName is specified.
  • The selected items if the ValueFieldName property is unspecified. Note that in this case, the List Box searches for a field named Value in the data source. An exception occurs in the following situations:
    • If the found Value data type differs from the bound Values type.
    • If the data source does not contain a field named Value.
<DxListBox Data="@Staff.DataSource"
          TextFieldName="@nameof(Person.Text)"
          @bind-Values="@SelectedStaff">
</DxListBox>

@code {
    IEnumerable<Person> SelectedStaff { get; set; } = new List<Person>() { Staff.DataSource[0] };
}

The code below demonstrates a sample implementation of the Person class.

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

The ListBox Values property is strongly typed. You can use two-way binding only with IEnumerable<T> collections. If you want to store data in other collections, for example, IList, use one-way binding:

<DxListBox @bind-Data="@Cities" @bind-Values="@Values" />

@code {
   IList<string> Cities = new List<string>() {
       "London",
       "Berlin",
       "Paris",
   };
   IList<string> Values { get; set; } 
}

Run Demo: List Box - Overview

See Also