Compartir a través de


DataGridComboBoxColumn Clase

Definición

Representa una columna DataGrid que hospeda los controles ComboBox en sus celdas.

public ref class DataGridComboBoxColumn : System::Windows::Controls::DataGridColumn
public class DataGridComboBoxColumn : System.Windows.Controls.DataGridColumn
type DataGridComboBoxColumn = class
    inherit DataGridColumn
Public Class DataGridComboBoxColumn
Inherits DataGridColumn
Herencia

Ejemplos

En el ejemplo siguiente se muestra cómo rellenar la lista desplegable de cada una ComboBox de las columnas con los valores de una enumeración. El elemento seleccionado de la lista desplegable está enlazado estableciendo la SelectedItemBinding propiedad en la propiedad del objeto mostrado en cada fila.

<NavigationWindow x:Class="DataGrid_CustomColumns.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:core="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:DataGrid_CustomColumns"
    Title="Customers" Height="300" Width="300" ShowsNavigationUI="False"  >
    
<NavigationWindow.Resources>
    <!--Create list of enumeration values-->
    <ObjectDataProvider x:Key="myEnum" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type Type="local:OrderStatus"/>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
    <!--Create an instance of the converter for Email-->
    <local:EmailConverter x:Key="EmailConverter" />
</NavigationWindow.Resources>
<NavigationWindow.Content>  
    
<Grid>
    <DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="False" >
        <DataGrid.Columns>
                <DataGridComboBoxColumn Header="Order Status"  SelectedItemBinding="{Binding Status}" ItemsSource="{Binding Source={StaticResource myEnum}}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
    </NavigationWindow.Content>
</NavigationWindow>
public partial class Window1 : NavigationWindow
{
Class Window1
public Window1()
{
    InitializeComponent();

    //GetData() creates a collection of Customer data from a database
    ObservableCollection<Customer> custdata = GetData();
    
    //Bind the DataGrid to the customer data
    DG1.DataContext = custdata;
}
Public Sub New()
    ' This call is required by the Windows Form Designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.

    'GetData() creates a collection of Customer data from a database
    Dim custdata As ObservableCollection(Of Customer) = GetData()

    'Bind the DataGrid to the customer data
    DG1.DataContext = custdata

End Sub
//Defines the customer object
public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Uri Email { get; set; }
    public bool IsMember { get; set; }
    public OrderStatus Status { get; set; }
}
'Defines the customer object
Public Class Customer
    Public Property FirstName() As String
    Public Property LastName() As String
    Public Property Email() As Uri
    Public Property IsMember() As Boolean
    Public Property Status() As OrderStatus
End Class
public enum OrderStatus { None, New, Processing, Shipped, Received };
Public Enum OrderStatus
    None
    [New]
    Processing
    Shipped
    Received
End Enum

Comentarios

Use DataGridComboBoxColumn para mostrar datos en los que hay un conjunto de elementos entre los que elegir, como una enumeración. DataGridComboBoxColumn permite a los usuarios seleccionar un elemento en una lista desplegable. En la siguiente ilustración se muestra un control DataGridComboBoxColumn.

DataGridComboBoxColumn

Para rellenar la lista desplegable, establezca primero la ItemsSource propiedad para mediante ComboBox una de las siguientes opciones:

Una vez establecido , ItemsSource enlace el elemento seleccionado en ComboBox al elemento de datos de la fila en la que se encuentra la celda. Puede establecer el enlace mediante una de las siguientes propiedades:

Propiedad Descripción
TextBinding Establece la ruta de acceso de enlace del texto para el elemento seleccionado actualmente.
SelectedItemBinding Establece la ruta de acceso de enlace del objeto seleccionado actualmente.
SelectedValueBinding Establece la ruta de acceso de enlace al valor del elemento seleccionado especificado por la SelectedValuePath propiedad .

Cuando la IsReadOnly propiedad está establecida trueen , los usuarios no pueden editar la columna y no podrán ver la lista desplegable.

Si desea mostrar otros tipos de datos, DataGrid proporciona los siguientes tipos de columna:

Tipo de columna Presentación de datos
DataGridHyperlinkColumn Use para mostrar datos de URI.
DataGridCheckBoxColumn Use para mostrar datos booleanos.
DataGridTextColumn Use para mostrar texto.

Si desea usar otros controles en DataGrid, puede crear sus propios tipos de columna mediante DataGridTemplateColumn.

Constructores

DataGridComboBoxColumn()

Inicializa una nueva instancia de la clase DataGridComboBoxColumn.

Campos

DisplayMemberPathProperty

Identifica la propiedad de dependencia DisplayMemberPath.

EditingElementStyleProperty

Identifica la propiedad de dependencia EditingElementStyle.

ElementStyleProperty

Identifica la propiedad de dependencia ElementStyle.

ItemsSourceProperty

Identifica la propiedad de dependencia ItemsSource.

SelectedValuePathProperty

Identifica la propiedad de dependencia SelectedValuePath.

Propiedades

ActualWidth

Obtiene el ancho actual de la columna, en unidades independientes del dispositivo (1/96 pulgadas por unidad).

(Heredado de DataGridColumn)
CanUserReorder

Obtiene o establece un valor que indica si el usuario puede cambiar la posición de visualización de una columna arrastrando el encabezado de columna.

(Heredado de DataGridColumn)
CanUserResize

Obtiene o establece un valor que indica si el usuario puede ajustar el ancho de columna mediante el mouse.

(Heredado de DataGridColumn)
CanUserSort

Obtiene o establece un valor que indica si el usuario puede ordenar la columna haciendo clic en el encabezado de columna.

(Heredado de DataGridColumn)
CellStyle

Obtiene o establece el estilo que se utiliza para representar celdas en la columna.

(Heredado de DataGridColumn)
ClipboardContentBinding

Obtiene o establece el objeto de enlace que se va a usar al obtener o establecer el contenido de celda del Portapapeles.

DataGridOwner

Obtiene el control DataGrid que contiene esta columna.

(Heredado de DataGridColumn)
DefaultEditingElementStyle

Obtiene el valor predeterminado de la propiedad EditingElementStyle.

DefaultElementStyle

Obtiene el valor predeterminado de la propiedad ElementStyle.

DependencyObjectType

Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.

(Heredado de DispatcherObject)
DisplayIndex

Obtiene o establece la posición de presentación de la columna con respecto a las demás columnas de DataGrid.

(Heredado de DataGridColumn)
DisplayMemberPath

Obtiene o establece una ruta de acceso a un valor del objeto de origen para proporcionar la representación visual del objeto.

DragIndicatorStyle

Obtiene o establece el objeto de estilo que se va a aplicar al encabezado de columna durante una operación de arrastre.

(Heredado de DataGridColumn)
EditingElementStyle

Obtiene o establece el estilo que se utiliza al representar el elemento que la columna muestra para una celda en el modo de edición.

ElementStyle

Obtiene o establece el estilo que se utiliza al representar el elemento que la columna muestra para una celda que no está en el modo de edición.

Header

Obtiene o establece el contenido del encabezado de columna.

(Heredado de DataGridColumn)
HeaderStringFormat

Obtiene o establece el modelo de formato que se aplica al contenido del encabezado de columna.

(Heredado de DataGridColumn)
HeaderStyle

Obtiene o establece el estilo que se usa al representar el encabezado de columna.

(Heredado de DataGridColumn)
HeaderTemplate

Obtiene o establece la plantilla que define la representación visual del encabezado de columna.

(Heredado de DataGridColumn)
HeaderTemplateSelector

Obtiene o establece el objeto que selecciona la plantilla que se va a usar para el encabezado de columna.

(Heredado de DataGridColumn)
IsAutoGenerated

Obtiene un valor que indica si la columna se genera automáticamente.

(Heredado de DataGridColumn)
IsFrozen

Obtiene un valor que indica si la columna no se puede desplazar horizontalmente.

(Heredado de DataGridColumn)
IsReadOnly

Obtiene o establece un valor que indica si se pueden editar las celdas de la columna.

(Heredado de DataGridColumn)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).

(Heredado de DependencyObject)
ItemsSource

Obtiene o establece una colección que se utiliza para generar el contenido del control de cuadro combinado.

MaxWidth

Obtiene o establece la restricción de ancho máximo de la columna.

(Heredado de DataGridColumn)
MinWidth

Obtiene o establece la restricción de ancho mínimo de la columna.

(Heredado de DataGridColumn)
SelectedItemBinding

Obtiene o establece el enlace del elemento seleccionado actualmente.

SelectedValueBinding

Obtiene o establece el valor del elemento seleccionado que se ha obtenido mediante SelectedValuePath.

SelectedValuePath

Obtiene o establece la ruta de acceso que se utiliza para obtener la propiedad SelectedValue de la propiedad SelectedItem.

SortDirection

Obtiene o establece la dirección de ordenación (ascendente o descendente) de la columna.

(Heredado de DataGridColumn)
SortMemberPath

Obtiene o establece un nombre de propiedad (o una jerarquía de nombres de propiedad delimitada por puntos) que indica el miembro por el que se debe ordenar.

(Heredado de DataGridColumn)
TextBinding

Obtiene o establece el enlace del texto en la parte correspondiente al cuadro de texto del control ComboBox.

TextBlockComboBoxStyleKey

Obtiene la clave de recurso correspondiente al estilo que se va a aplicar a un cuadro combinado de solo lectura.

Visibility

Obtiene o establece la visibilidad de la columna.

(Heredado de DataGridColumn)
Width

Obtiene o establece el ancho de columna o el modo de cambio de tamaño automático.

(Heredado de DataGridColumn)

Métodos

CancelCellEdit(FrameworkElement, Object)

Hace que la celda de columna que se está editando se revierta al valor especificado.

CancelCellEdit(FrameworkElement, Object)

Hace que la celda de columna que se está editando se revierta al valor original, sin editar.

(Heredado de DataGridColumn)
CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.

(Heredado de DependencyObject)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama.

(Heredado de DependencyObject)
CommitCellEdit(FrameworkElement)

Realiza todas las operaciones de validación necesarias antes de salir del modo de edición.

CommitCellEdit(FrameworkElement)

Realiza todas las operaciones de validación necesarias antes de salir del modo de edición de celda.

(Heredado de DataGridColumn)
Equals(Object)

Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual.

(Heredado de DependencyObject)
GenerateEditingElement(DataGridCell, Object)

Obtiene un control de cuadro combinado que está enlazado a los valores de las propiedades SelectedItemBinding, SelectedValueBinding y TextBinding de la columna.

GenerateElement(DataGridCell, Object)

Obtiene un control de cuadro combinado de solo lectura que está enlazado a los valores de las propiedades SelectedItemBinding, SelectedValueBinding y TextBinding de la columna.

GetCellContent(DataGridRow)

Recupera el valor de la propiedad Content para la celda situada en la intersección de esta columna y la fila especificada.

(Heredado de DataGridColumn)
GetCellContent(Object)

Obtiene el valor de la propiedad Content para la celda situada en la intersección de esta columna y la fila que representa el elemento de datos especificado.

(Heredado de DataGridColumn)
GetHashCode()

Obtiene un código hash de este objeto DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
NotifyPropertyChanged(String)

Notifica al DataGrid que contiene esta columna que una propiedad de columna ha cambiado.

(Heredado de DataGridColumn)
OnCoerceIsReadOnly(Boolean)

Determina el valor de la propiedad IsReadOnly basándose en las reglas de propiedad del control DataGrid que contiene esta columna.

OnCopyingCellClipboardContent(Object)

Genera el evento CopyingCellClipboardContent.

(Heredado de DataGridColumn)
OnPastingCellClipboardContent(Object, Object)

Genera el evento PastingCellClipboardContent.

(Heredado de DataGridColumn)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cuando se actualiza el valor efectivo de alguna propiedad de dependencia en este DependencyObject. La propiedad de dependencia específica que cambió se notifica en los datos de evento.

(Heredado de DependencyObject)
OnSelectedItemBindingChanged(BindingBase, BindingBase)

Notifica a DataGrid cuando cambia la propiedad SelectedItemBinding.

OnSelectedValueBindingChanged(BindingBase, BindingBase)

Notifica a DataGrid cuando cambia la propiedad SelectedValueBinding.

OnTextBindingChanged(BindingBase, BindingBase)

Notifica a DataGrid cuando cambia la propiedad TextBinding.

PrepareCellForEdit(FrameworkElement, RoutedEventArgs)

Se llama a este método cuando una celda de la columna entra en modo de edición.

ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.

(Heredado de DependencyObject)
RefreshCellContent(FrameworkElement, String)

Actualiza el contenido de una celda de la columna como respuesta a un cambio de enlace.

SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen del valor.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia especificada.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.

(Heredado de DispatcherObject)

Eventos

CopyingCellClipboardContent

Se produce después de prepararse el contenido del Portapapeles de la celda.

(Heredado de DataGridColumn)
PastingCellClipboardContent

Se produce antes de que el contenido del Portapapeles se transfiera a la celda.

(Heredado de DataGridColumn)

Se aplica a