DataGridViewComboBoxCell.ValueMember Propiedad

Definición

Obtiene o establece una cadena que especifica de dónde recopilar los valores subyacentes utilizados en la lista desplegable.

C#
public virtual string ValueMember { get; set; }

Valor de propiedad

Una cadena que especifica el nombre de una propiedad o columna. El valor predeterminado es Empty, que indica que se omite esta propiedad.

Excepciones

La propiedad DataSource no es null y el valor especificado al establecer esta propiedad no es null ni Empty y no corresponde al nombre de una propiedad o columna válidas del origen de datos.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de la DataGridViewComboBoxColumn.ValueMember propiedad , que es similar a esta propiedad. Este ejemplo forma parte de un ejemplo más grande disponible en el tema de información general de la DataGridViewComboBoxColumn clase.

C#
private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
    DataGridViewComboBoxColumn column =
        new DataGridViewComboBoxColumn();
    {
        column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
        column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
        column.DropDownWidth = 160;
        column.Width = 90;
        column.MaxDropDownItems = 3;
        column.FlatStyle = FlatStyle.Flat;
    }
    return column;
}

private void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn comboboxColumn)
{
    {
        comboboxColumn.DataSource = RetrieveAlternativeTitles();
        comboboxColumn.ValueMember = ColumnName.TitleOfCourtesy.ToString();
        comboboxColumn.DisplayMember = comboboxColumn.ValueMember;
    }
}

private DataTable RetrieveAlternativeTitles()
{
    return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
}

string connectionString =
    "Integrated Security=SSPI;Persist Security Info=False;" +
    "Initial Catalog=Northwind;Data Source=localhost";

private DataTable Populate(string sqlCommand)
{
    SqlConnection northwindConnection = new SqlConnection(connectionString);
    northwindConnection.Open();

    SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = command;

    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    adapter.Fill(table);

    return table;
}

// Using an enum provides some abstraction between column index
// and column name along with compile time checking, and gives
// a handy place to store the column names.
enum ColumnName
{
    EmployeeId,
    LastName,
    FirstName,
    Title,
    TitleOfCourtesy,
    BirthDate,
    HireDate,
    Address,
    City,
    Region,
    PostalCode,
    Country,
    HomePhone,
    Extension,
    Photo,
    Notes,
    ReportsTo,
    PhotoPath,
    OutOfOffice
};

Comentarios

ValueMember representa el valor correspondiente de una selección. En cambio, la DisplayMember propiedad representa la información de texto que se muestra en la lista desplegable.

La DataSource propiedad especifica el origen de datos para el valor de las selecciones mostradas en la lista desplegable.

Si se supone que los datos de las selecciones mostradas por DataGridViewComboBoxCell se deben dibujar de una propiedad o columna no predeterminada de DataSource, ValueMember se debe establecer además DataSourcede .

Cuando DataSource se establece en una matriz de cadenas, ValueMember no es necesario establecer porque cada cadena de la matriz se usará como una cadena de presentación válida y un valor subyacente válido.

Otra manera de cargar selecciones de cuadro combinado es usar la Items propiedad . ValueMember debe contener el nombre de propiedad del que se van a recopilar las selecciones.

Se aplica a

Producto Versiones
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también