Enlazar controles WPF a datos en Visual Studio

Para mostrar los datos a los usuarios de la aplicación, puede enlazarlos a controles de WPF. Para crear estos controles enlazados a datos, puede arrastrar elementos desde la ventana Orígenes de datos hasta WPF Designer en Visual Studio. En este tema se describen algunas de las tareas, herramientas y clases más comunes que se pueden usar para crear aplicaciones de WPF enlazadas a datos.

Para obtener información general sobre cómo crear controles enlazados a datos en Visual Studio, vea Enlazar controles a los datos en Visual Studio. Para obtener más información sobre el enlace de datos de WPF, vea Información general sobre el enlace de datos.

Tareas necesarias para enlazar controles WPF a datos

En la tabla siguiente se enumeran las tareas que se pueden realizar al arrastrar elementos desde la ventana Orígenes de datos hasta WPF Designer.

Tarea

Más información

Crear nuevos controles enlazados a datos.

Enlazar controles existentes a datos.

Cómo: Enlazar controles WPF a datos en Visual Studio

Crear controles que muestren los datos relacionados de una relación primaria-secundaria: cuando el usuario selecciona un registro de datos primario en un control, otro control muestra los datos secundarios relacionados correspondientes al registro seleccionado.

Cómo: Mostrar datos relacionados en aplicaciones WPF

Crear una tabla de búsqueda que muestre información de una tabla según el valor de un campo de clave externa de otra tabla.

Cómo: Crear tablas de búsqueda en aplicaciones WPF

Enlazar un control a una imagen de una base de datos.

Cómo: Enlazar controles a imágenes desde una base de datos

Destinos de colocación válidos

Los elementos de la ventana Orígenes de datos solo se pueden arrastrar hasta destinos de colocación válidos de WPF Designer. Principalmente, existen dos tipos de destinos de colocación válidos: contenedores y controles. Un contenedor es un elemento de la interfaz de usuario que normalmente contiene controles. Por ejemplo, una cuadrícula es un contenedor, como también lo es una ventana.

XAML y código generados

Al arrastrar un elemento desde la ventana Orígenes de datos hasta WPF Designer, Visual Studio genera XAML que define un nuevo control enlazado a datos (o enlaza un control existente al origen de datos). En el caso de algunos orígenes de datos, Visual Studio también genera código en el archivo de código subyacente que llena de datos el origen de datos.

En la tabla siguiente se muestra el XAML y el código que Visual Studio genera para cada tipo de origen de datos en la ventana Orígenes de datos.

Origen de datos

Genera XAML que enlaza un control al origen de datos

Genera código que llena de datos el origen de datos

Conjunto de datos

Entity Data Model

Servicio

No

Objeto

No

Conjuntos de datos

Cuando se arrastra una tabla o columna desde la ventana Orígenes de datos hasta el diseñador, Visual Studio genera XAML que realiza lo siguiente:

  • Agrega el conjunto de datos y un nuevo objeto CollectionViewSource a los recursos del contenedor al que se arrastró el elemento. CollectionViewSource es un objeto que se puede usar para navegar y mostrar los datos del conjunto de datos.

  • Crea un enlace de datos para un control. Si se arrastra el elemento hasta un control existente en el diseñador, el XAML enlaza el control al elemento. Si se arrastra el elemento hasta un contenedor, el XAML crea el control que se seleccionó para el elemento arrastrado y enlaza el control al elemento. El control se crea dentro de una nueva clase Grid.

Visual Studio también realiza los cambios siguientes en el archivo de código subyacente:

  • Crea un controlador de eventos Loaded para el elemento de UI que contiene el control. El controlador de eventos llena de datos la tabla, recupera CollectionViewSource de los recursos del contenedor y, a continuación, convierte el primer elemento de datos en el elemento actual. Si ya existe un controlador de eventos Loaded, Visual Studio agrega este código al controlador de eventos existente.

Entity Data Models

Al arrastrar una entidad o una propiedad de entidad desde la ventana Orígenes de datos hasta el diseñador, Visual Studio genera XAML que realiza lo siguiente:

  • Agrega un nuevo objeto CollectionViewSource a los recursos del contenedor al que se arrastró el elemento. CollectionViewSource es un objeto que se puede usar para navegar y mostrar los datos de la entidad.

  • Crea un enlace de datos para un control. Si se arrastra el elemento hasta un control existente en el diseñador, el XAML enlaza el control al elemento. Si se arrastra el elemento hasta un contenedor, el XAML crea el control que se seleccionó para el elemento arrastrado y enlaza el control al elemento. El control se crea dentro de una nueva clase Grid.

Visual Studio también realiza los cambios siguientes en el archivo de código subyacente:

  • Agrega un nuevo método que devuelve una consulta para la entidad que se arrastró hasta el diseñador (o la entidad que contiene la propiedad que se arrastró hasta el diseñador). El nuevo método tiene el nombre GetnombreDeEntidadQuery, donde nombreDeEntidad es el nombre de la entidad.

  • Crea un controlador de eventos Loaded para el elemento de UI que contiene el control. El controlador de eventos llama al método GetnombreDeEntidadQuery para llenar de datos la entidad, recupera CollectionViewSource de los recursos del contenedor y, a continuación, convierte el primer elemento de datos en el elemento actual. Si ya existe un controlador de eventos Loaded, Visual Studio agrega este código al controlador de eventos existente.

Servicios

Cuando se arrastra un objeto o una propiedad de servicio desde la ventana Orígenes de datos hasta el diseñador, Visual Studio genera XAML que crea un control enlazado a datos (o enlaza un control existente al objeto o la propiedad). Sin embargo, Visual Studio no genera código que llene de datos el objeto de servicio del proxy. Este código se debe escribir expresamente. Para obtener un ejemplo de cómo hacerlo, vea Tutorial: Enlazar controles de WPF a un servicio de datos de WCF.

Visual Studio genera XAML que realiza lo siguiente:

  • Agrega un nuevo objeto CollectionViewSource a los recursos del contenedor al que se arrastró el elemento. CollectionViewSource es un objeto que se puede usar para navegar y mostrar los datos en el objeto devuelto por el servicio.

  • Crea un enlace de datos para un control. Si se arrastra el elemento hasta un control existente en el diseñador, el XAML enlaza el control al elemento. Si se arrastra el elemento hasta un contenedor, el XAML crea el control que se seleccionó para el elemento arrastrado y enlaza el control al elemento. El control se crea dentro de una nueva clase Grid.

Objetos

Cuando se arrastra un objeto o una propiedad desde la ventana Orígenes de datos hasta el diseñador, Visual Studio genera XAML que crea un control enlazado a datos (o enlaza un control existente al objeto o la propiedad). Sin embargo, Visual Studio no genera el código que llena de datos el objeto. Este código se debe escribir expresamente.

Nota

Las clases personalizadas deben ser públicas y tener un constructor sin parámetros predeterminado. No pueden ser clases anidadas que contengan un "punto" en su sintaxis. Para obtener más información, vea Clases XAML y personalizadas para WPF.

Visual Studio genera un código XAML, que realiza lo siguiente:

  • Agrega un nuevo objeto CollectionViewSource a los recursos del contenedor al que se arrastró el elemento. CollectionViewSource es un objeto que se puede usar para navegar y mostrar los datos del objeto.

  • Crea un enlace de datos para un control. Si se arrastra el elemento hasta un control existente en el diseñador, el XAML enlaza el control al elemento. Si se arrastra el elemento hasta un contenedor, el XAML crea el control que se seleccionó para el elemento arrastrado y enlaza el control al elemento. El control se crea dentro de una nueva clase Grid.

Vea también

Tareas

Cómo: Enlazar controles WPF a datos en Visual Studio

Cómo: Crear tablas de búsqueda en aplicaciones WPF

Cómo: Mostrar datos relacionados en aplicaciones WPF

Tutorial: Enlazar controles WPF a Entity Data Model

Tutorial: Enlazar controles WPF a un conjunto de datos

Tutorial: Enlazar controles de WPF a un servicio de datos de WCF

Tutorial: Mostrar datos relacionados en una aplicación WPF

Referencia

Orígenes de datos (ventana)

Conceptos

Información general sobre orígenes de datos