2009-04-14 19 views
5

Tengo un grupo de casillas de verificación que representan diferentes selecciones del mismo tipo (para mi ejemplo, todos son tipos de archivos diferentes). Siento que vincular cada una de ellas a una propiedad individual en ViewModel es excesivo, y preferiría vincularlas a todas en una colección y usar la sintaxis de enlace para enlazar cada casilla de verificación a un elemento particular de la colección por clave. Intento seguir el patrón MVVM, así que no solo quiero ser flojo y manejar el evento Checked o algo así.WPF MVVM Enlace Checkbox.IsChecked a un elemento con nombre en un Dictionary <string, bool>

¿Hay alguna manera de expresar una ruta o clave dentro de una colección mediante la sintaxis de enlace de WPF? Por ejemplo, si expongo un Dictionary<string, bool> llamado FileTypes como propiedad pública en el ViewModel, ¿hay alguna manera de vincular una de las casillas de verificación a FileTypes ["aspx"]? ¿Qué pasa si tengo una estructura de datos más compleja como Dictionary<string, Dictionary<string, int>>?

Respuesta

3

Casi lo tenía - Coloque las comillas alrededor del argumento indexador:

{Binding FileTypes[aspx]} 

Una estructura de datos más complejas solo requeriría una secuencia de indexadores, por ejemplo,

{Binding Foo[aspx][Bar]} 

Por cierto, un buen recurso para esto es en MSDN, en WPF> Datos> Enlace de datos> Encuadernación Declaraciones general - vaya a "Binding Path Sintaxis" para ver un resumen de las notaciones y convenciones puedes usarlo en una ruta de enlace.

Cuestiones relacionadas