Estoy escribiendo un Control de usuario de WPF para mi aplicación, envolviendo un ListBox y algunos otros elementos.¿Cómo implementar DisplayMemberPath para mi Wpf UserControl?
ListBox tiene una nueva ItemTemplate que presenta cuatro piezas de información para cada elemento en mi lista. Puedo codificar cada una de las cuatro vinculaciones a propiedades específicas en los elementos de mi lista y se muestran bien.
Sin embargo, quiero que mi UserControl sea un poco más flexible.
En ListBox y ComboBox hay una propiedad DisplayMemberPath (heredado de ItemsControl) que parece "inyectar" la propiedad adecuada de unión en el ItemTemplate estándar.
¿Cómo obtengo el mismo resultado con mi control de usuario?
me gustaría establecer cuatro nuevas propiedades para permitir la configuración de la información que se muestra:
public string LabelDisplayPath { get; set; }
public string MetricDisplayPath { get; set; }
public string TitleDisplayPath { get; set; }
public string SubtitleDisplayPath { get; set; }
Revisión ItemsControl.DisplayMemberPath con reflector parece ir por el agujero del conejo, no he podido para entender cómo funciona.
Además, si estoy completamente fuera de curso, y hay otra técnica más "WPF" que debería usar en su lugar, por favor diríjanme en esa dirección.
actualización
He aquí una aclaración de lo que estoy tratando de lograr.
El cuadro de lista dentro de mi control del usuario aparecen cuatro piezas de información por artículo: etiqueta, título, subtítulo y métricas
En un solo lugar, quiero utilizar este control de usuario para visualizar una lista de cuestiones. Cada número es el siguiente:
public class Issue {
public string Code { get; set; }
public string Description { get; set; }
public string Priority { get; set; }
public string Reporter { get; set; }
}
Cuando se visualizan problemas, quiero usar las siguientes asignaciones:
Code --> Label
Description --> Title
Reporter --> Subtitle
Priority --> Metric
En otras partes de la misma aplicación, tengo una lista de mensajes que quiero visualizar utilizando el mismo UserControl. Cada mensaje tiene el siguiente aspecto:
public class Post {
public DateTime PostedOn { get; set; }
public string Title { get; set; }
public string Teaser { get; set; }
public int CommentCount { get; set; }
}
Cuando se muestran mensajes, quiero usar las siguientes asignaciones:
PostedOn --> Label
Title --> Title
Teaser --> Subtitle
CommentCount --> Metric
Teniendo en cuenta que las cuestiones y los mensajes son bastante diferentes abstracciones, que no quieren obligarlos tener las mismas propiedades, solo para permitir que UserControl se use sin cambios. En cambio, quiero introducir un poco de configurabilidad para que pueda reutilizar mi UserControl en ambos sitios limpiamente.
No entiendo muy bien lo que estás tratando de hacer. Al "codificar" sus enlaces, aún obtiene flexibilidad por el mero hecho de que está utilizando enlace de datos, ¿verdad? Quiero decir, podrías vincular a DependencyProperty y cambiar ese valor en el código subyacente. ¿Puedes publicar una muestra del XAML que estás utilizando y destacar qué es lo que no te gusta? – Dave