Información general de datos
- Orígenes de datos
- Enlace de datos
- Flujo de datos
- Métodos de enlace con orígenes de datos externos
- Plantillas de datos
Los datos son el corazón de todas las interfaces de usuario. Desde las reservas de hotel hasta la consulta del mercado de valores, las interfaces de usuario proporcionan una forma de visualizar e interactuar con alguna forma de datos. La elección de los componentes de la interfaz de usuario que van a estar visibles y la forma de disponerlos para que proporcionen un flujo de trabajo útil dependen principalmente de la naturaleza de los datos con los que se va a trabajar.
Orígenes de datos
Puede que la aplicación necesite trabajar sólo con orígenes de datos internos, quizá realizando cálculos con números que un usuario ha escrito en un formulario. Otras aplicaciones que haya creado podrían necesitar obtener acceso a orígenes de datos externos, como bases de datos, fuentes o servicios Web, o archivos locales que contengan información. Y en otros casos, las aplicaciones podrían necesitar obtener acceso a orígenes de datos tanto internos como externos. Actualmente, Microsoft® Expression Blend™ admite dos tipos de orígenes de datos externos: XML y objetos CLR.
- Origen de datos XML Archivo XML local o remoto que puede suministrar datos en formato XML a la aplicación. Puede usar un archivo XML que haya agregado al proyecto o puede establecer el origen de datos en la dirección URL de un archivo XML de un sitio Web.
- Origen de datos de objeto CLR (Common Language Runtime) Objeto que contiene propiedades públicas, subpropiedades e indizadores a los que puede enlazar las propiedades de destino. Puede usar una biblioteca de clases de Microsoft® .NET Framework que convierta los datos de una base de datos en ObservableCollection. Para obtener más información, vea Crear un origen de datos de objetos CLR o vea los temas acerca del origen de datos de objeto CLR en MSDN (pueden estar en inglés).

Expression Blend no admite una clase de origen de datos de objeto CLR que incluya parámetros en el constructor.

Lista de orígenes de datos del panel Proyecto de Expression Blend
Los orígenes de datos externos que están asociados al documento activo en Expression Blend se muestran en una lista en Datos, en el panel Proyecto. Puede usar los botones
para agregar y quitar orígenes de datos, y puede arrastrar elementos de datos
al área de diseño para crear controles que estén enlazados a datos con los elementos. Si no se ha configurado ningún origen de datos, Datos, en el panel Proyecto, mostrará sólo los botones que se usan para crear un origen de datos.
Enlace de datos
El enlace de datos es el proceso de conectar los elementos de un origen de datos a los componentes de la interfaz de usuario (controles). Esto significa que cada vez que cambien los datos, los componentes de la interfaz reflejarán de manera opcional dichos cambios, y viceversa. El ejemplo más sencillo de enlace de datos sería un control de barra de desplazamiento enlazado internamente al ancho de un rectángulo. Al mover la barra de desplazamiento, el tamaño del rectángulo se agranda o se reduce a escala.
Microsoft Windows® Presentation Foundation y Expression Blend proporcionan una manera sencilla y uniforme de enlazar los elementos de una aplicación a diferentes orígenes de datos, y de configurar los elementos que muestran los datos y modificar dichos datos. Un enlace se construye, básicamente, entre un origen y un destino. El origen suele ser un origen de datos u otro control, y el destino es un control. En el ejemplo de la barra de desplazamiento, el origen es la propiedad Value del control de barra de desplazamiento y el destino es la propiedad Width del rectángulo.
Puede crear enlaces mediante el botón Opciones avanzadas de la propiedad
que está asociado a las propiedades del panel Propiedades, o bien arrastrando elementos desde Datos en el panel Proyecto al área de diseño. (Para obtener instrucciones, vea Enlazar datos a una propiedad o elemento.) Con ambas opciones se abre el cuadro de diálogo Crear enlace de datos para habilitar la creación de vínculos de enlace entre un control (el destino) y un campo de datos u otro control (el origen).

Cuadro de diálogo Crear enlace de datos con la sección Opciones avanzadas expandida
El cuadro de diálogo Crear enlace de datos presenta tres opciones básicas para seleccionar un origen de datos, así como opciones avanzadas:
- Campo de datos Esta opción presenta los orígenes de datos XML y objetos CLR creados en el proyecto y sus campos asociados. Puede agregar un nuevo origen de datos XML o de objeto CLR, o usar conexiones existentes que ya hayan sido creadas. Para seleccionar un campo al que enlazar, seleccione un elemento en Orígenes de datos y, a continuación, seleccione un elemento de datos en Campos. El tipo de elemento de datos debe coincidir con el tipo de propiedad con la que se está enlazando, a menos que tenga un convertidor de valores que pueda aplicarse (vea "Opciones avanzadas" más adelante en este tema). Una vez creado el enlace de datos, el valor de la propiedad de destino se llena con el elemento de datos.
- Propiedad del elemento Esta opción habilita el enlace de la propiedad de un elemento a la propiedad de otro elemento del mismo archivo XAML (lenguaje de marcado de aplicaciones extensible), lo que se parece a enlazar la propiedad Width de un rectángulo a la propiedad Value de una barra de desplazamiento en el ejemplo citado anteriormente en este tema. Para crear este enlace, busque la propiedad de destino (en este caso, la propiedad Width de un rectángulo) en el panel Propiedades, haga clic en el botón Opciones avanzadas de la propiedad
y, a continuación, haga clic en Enlace de datos. Haga clic en la ficha Propiedad del elemento, desplácese por los elementos del panel izquierdo para encontrar la barra de desplazamiento (elemento de origen) y, a continuación, busque en la lista de propiedades del panel derecho la propiedad Value. - Contexto de datos explícito Esta opción permite enlazar a un origen de datos dentro del contexto especificado para el elemento actual o uno de sus elementos primarios. Un contexto de datos es una manera cómoda de compartir datos entre varios controles estableciendo un ámbito dentro del cual todas las propiedades enlazadas a datos heredan un origen común. Por ejemplo, puede asignar un contexto de datos a un objeto de cuadrícula que contenta un objeto ListBox y un objeto TextBlock, y enlazar las propiedades de ambos objetos a diferentes elementos de datos dentro del mismo contexto. Esto es útil cuando se desea crear un diseño de tipo maestro/detalles en el que, si se hace clic en un elemento de la lista (el panel maestro), la información sobre dicho elemento aparece en otro objeto (panel de detalles). El panel Campos de la ficha Contexto de datos explícito muestra una lista de los campos de conexión de datos disponibles del contexto de datos heredado, del cual se puede elegir el más apropiado para la propiedad de destino.
-
Opciones avanzadas La sección avanzada del cuadro de diálogo, a la que puede obtener acceso haciendo clic en el botón de expansión de la parte inferior
, permite configurar opciones avanzadas, como la dirección del flujo de datos (vea Flujo de datos más adelante en este tema), un valor predeterminado para la propiedad de destino, un convertidor de valores y un parámetro de convertidor. Los convertidores de valores son métodos de clase de .NET Framework que se usan para convertir valores de un tipo en otro, y que se necesitan cuando las propiedades de origen y de destino no pertenecen al mismo tipo. Puede agregar un convertidor de valores haciendo clic en el botón “…” situado junto al cuadro del convertidor de valores y, a continuación, eligiendo uno del cuadro de diálogo Agregar convertidor de valores. Puede especificar también un parámetro de convertidor (por ejemplo, para convertir de doble a decimal, es posible que necesite especificar un valor para el número de dígitos que deberán mostrarse detrás del separador de decimales). Para obtener un ejemplo de convertidor de valores, vea Crear y aplicar un convertidor de valores.
|
|
En las tres opciones indicadas anteriormente, puede elegir entre usar una ruta personalizada o una expresión de XML Path Language (XPath) para el enlace de datos. XPath se rellena automáticamente con la ruta del elemento seleccionado en Campos. No obstante, puede anexar a la ruta para restringir los datos aportados desde el origen de datos; por ejemplo, identificando los nodos específicos en los datos XML que desea, como un elemento de una matriz. Para obtener más información acerca del uso de XPath, vea los temas sobre la sintaxis XPath y sobre cómo enlazar con datos XML mediante XMLDataProvider y consultas XPath en MSDN (pueden estar en inglés). |
Flujo de datos
El flujo de datos se define como la dirección en la que fluyen los datos entre el origen y el destino. En el caso de la barra de desplazamiento que escala un rectángulo, sólo se necesita un enlace en una dirección: desde la barra de desplazamiento (origen) al rectángulo (destino). Windows Presentation Foundation ofrece las siguientes configuraciones de enlace para el flujo de datos:
- OneWay Los cambios que se realizan en el origen actualizan automáticamente el destino, pero los cambios en el destino no actualizan el origen.
- TwoWay Los cambios que se realizan en el origen actualizan automáticamente el destino, y viceversa.
- OneWayToSource Ésta es la opción opuesta a OneWay y con ella se actualiza automáticamente el origen tras modificar el destino. Esta opción es útil en casos especiales en los que la propiedad de destino no está visible en el panel Propiedades, lo que puede ocurrir si no se trata de una propiedad de dependencia. El enlace OneWayToSource permite configurar el enlace de datos en el destino.
- OneTime Provoca una única inicialización del origen al destino, pero los cambios posteriores en el origen no actualizan el destino.
Para ver el flujo de datos en acción, observe el siguiente ejemplo de interfaz de usuario que contiene un control Slider (origen) y un control TextBox (destino):

Flujo de datos entre tipos de enlace
En la ilustración de ejemplo anterior, el enlace se configura en el cuadro de texto (destino) con el siguiente procedimiento:
- En el panel Propiedades, se hace clic en el botón Opciones avanzadas de la propiedad
que está asociado a la propiedad Text (en Propiedades comunes) de TextBox y se selecciona Enlace de datos. - En el cuadro de diálogo Crear enlace de datos que aparece, se selecciona la ficha Propiedad del elemento y la propiedad Value de Slider.
En la siguiente tabla se describe el comportamiento de enlace de este ejemplo, dependiendo del tipo de enlace:
| Tipo de enlace | Resultado |
|---|---|
OneWay |
Al mover la barra de desplazamiento (origen) se actualizará el cuadro de texto (destino). No obstante, si se escribe un número en el cuadro de texto, la barra de desplazamiento no se mueve. |
TwoWay |
Al mover la barra de desplazamiento (origen) se actualizará el cuadro de texto (destino). Además, la posición de la barra de desplazamiento cambiará si se escribe un número en el cuadro de texto después de hacer clic con el mouse fuera del cuadro de texto. |
OneWayToSource |
Si se escribe un número en el cuadro de texto (destino) y después se hace clic fuera del mismo, la barra de desplazamiento se moverá (origen). No obstante, mover la barra de desplazamiento no actualizara el cuadro de texto. |
OneTime |
El valor inicial de la barra de desplazamiento (origen) actualizará el cuadro de texto (destino) cuando se inicie la aplicación. Los cambios posteriores en la barra de desplazamiento no actualizarán el cuadro de texto y escribir un número en el cuadro de texto no actualizará la barra de desplazamiento. |
Métodos de enlace con orígenes de datos externos
Flujo de trabajo 1: enlace del origen al destino
Una vez creado el origen de datos externo, puede enlazar ese origen de datos a los controles de la interfaz de usuario. Esto puede hacerse de dos maneras:
- Enlazar un control existente Si el control ya se encuentra en el documento, puede enlazarlo a los datos arrastrando el nodo de datos desde Datos, en el panel Proyecto, hasta el control y, a continuación, seleccionando el nombre del control (Enlazar propiedad a control) en Enlazar a control existente en la lista que aparece.
- Crear un control También puede arrastrar cualquier nodo de datos desde Datos, en el panel Proyecto, hasta un documento y, después, seleccionar un control de la lista que aparece en la sección Seleccione un control para representar este campo de datos. Con esta opción se insertará un control nuevo en el documento.
Tanto si elige enlazar a un control existente como crear uno nuevo, se abrirá el cuadro de diálogo Crear enlace de datos para que pueda seleccionar el campo que desea enlazar al origen de datos. Por ejemplo, si crea un enlace arrastrando un elemento de datos que sea una cadena a un TextBox, probablemente desee enlazar al campo Texto (que está seleccionado de manera predeterminada) de este nodo. También puede especificar opciones de enlace adicionales haciendo clic en el botón de expansión
en el cuadro de diálogo. Haga clic en Aceptar para cerrar el cuadro de diálogo y crear el enlace. Si los datos están disponibles en tiempo de diseño, el valor del campo seleccionado debería actualizar el control. Para obtener instrucciones, vea Enlazar datos a una propiedad o elemento.
Si el elemento de datos es una colección de elementos (una matriz) o si no coincide exactamente con el tipo de destino, se abrirá el cuadro de diálogo Crear plantilla de datos para que pueda elegir controles específicos con los que mostrar los datos. Para obtener más información, vea Plantillas de datos más adelante en este tema.
Flujo de trabajo 2: enlace del destino al origen
Si bien el flujo de trabajo anterior empezaba en el origen de datos y terminaba en el control de destino, puede invertir el proceso si ya ha creado el control y sabe qué propiedad desearía enlazar al origen de datos o a la propiedad de otro control. Este flujo de trabajo es especialmente útil en el enlace de elemento a elemento.
Junto al editor del valor de cada propiedad en el panel Propiedades, encontrará un botón Opciones avanzadas de la propiedad
que permite configurar las Opciones avanzadas de la propiedad, incluido el enlace de datos. Al hacer clic en Enlace de datos en el menú de opciones avanzadas, se abre el mismo cuadro de diálogo Crear enlace de datos que se describe en el Flujo de trabajo 1, anteriormente en este tema.
Plantillas de datos
A menudo, se encontrará en situaciones en las que desee mostrar una lista de elementos del origen de datos. Un elemento de datos que contiene una lista de elementos se identifica mediante "(Matriz)" en el nombre. Si arrastra un nodo de la lista desde Datos, en el panel Proyecto, hasta un documento y selecciona ListBox en la lista de controles opcionales a los que enlazar, se le mostrará un cuadro de diálogo adicional titulado Crear plantilla de datos que le permitirá diseñar la plantilla de datos. Este cuadro de diálogo podría abrirse también cuando esté enlazando controles de texto a elementos de datos que son cadenas.
Una plantilla de datos define la estructura y el formato en que desea que se representen los datos. Por ejemplo, si está enlazando el campo ItemsSource de un control ListBox a una lista de nodos de contacto del origen de datos, la plantilla de datos es su forma de especificar qué campos de esta lista se van a incluir y qué controles deberán asignarse a cada campo. Podría elegir representar un nombre como TextBlock, una imagen como Image y un campo booleano como IsCurrentMember, como un control CheckBox. Crear una plantilla de datos garantiza que los datos de los nodos de conexión se convierten al formato visual que se desea. La plantilla permite controlar de manera muy precisa la forma en que los datos arbitrarios se muestran en el control.
|
|
Únicamente las propiedades Content e ItemsSource admiten plantillas de datos. |
En el cuadro de diálogo Crear plantilla de datos, tiene la opción de:
- Usar el estilo predeterminado para el control. En caso de enlace a una lista de elementos, el estilo predeterminado suele ser una secuencia de cuadros de texto. Para obtener más información, vea la información general sobre plantillas de datos en MSDN (puede estar en inglés). Esta opción está deshabilitada si no hay plantilla predeterminada para el control.
- Usar una plantilla de datos predefinida o actual que se encuentre ya en el proyecto. Esta opción está deshabilitada si no existe ningún recurso de plantilla de datos adecuado para el control.
- Especificar una plantilla de datos nueva y mostrar los campos. Esta opción permite elegir los campos de datos que se incluirán en la plantilla y seleccionar el tipo de control que se deberá asignar a cada campo de datos. También puede elegir el tipo de elemento contenedor que se incluirá en todos los campos; para ello, haga clic en la flecha de lista desplegable que se encuentra junto al control que se muestra para el elemento en la posición más alta. En el ejemplo que ilustra la imagen de más abajo, si hizo clic en la flecha de lista desplegable para StackPanel junto al elemento y, a continuación, seleccionó Grid, la plantilla de datos utilizará una cuadrícula en lugar de un panel de apilamiento como contenedor de los elementos. Utilice los botones de flecha para determinar el orden en que aparecen los campos de datos. Si no dispone de un enlace de datos activo, active la casilla de verificación Generar datos de ejemplo para que pueda ver el control con los datos de ejemplo en el área de diseño y así determinar si le gusta el aspecto de la plantilla.
Use el recuadro Vista previa para determinar si le gusta el aspecto de la plantilla.

Cuadro de diálogo Crear plantilla de datos
Las plantillas de datos se guardan como recursos. Si desea modificar una plantilla de datos existente, puede hacer clic en el botón Editar recurso situado junto a la plantilla de datos en el panel Recursos. Expression Blend pasará al modo de edición de plantillas y mostrará la estructura de la plantilla en Objetos y escala de tiempo. En este modo de edición, puede agregar controles a la plantilla y usar enlaces de datos del panel Propiedades para enlazar las propiedades de dichos controles a los elementos nuevos del origen de datos.

