vacía usar estar elementos ejemplo debe colección antes wpf listbox observablecollection

wpf - ejemplo - la colección de elementos debe estar vacía antes de usar itemssource



Cómo presentar una colección de objetos en un cuadro de lista en WPF (3)

Tengo una colección de objetos que quiero presentar. ¿Cómo puedo hacer esto? Un cuadro de lista haría, pero cada objeto tiene muchos atributos que quiero presentar. Ya até un listbox a una colección y tengo todos mis objetos en la lista. Mi pregunta es sobre la visualización del cuadro de lista y si el cuadro de lista es lo correcto o hay algo más que debería usar.


Encuentro que las respuestas existentes son un poco insuficientes, normalmente uno no procesa las colecciones ni reduce sus elementos a una cadena, en el mejor de los casos haría una manipulación dinámica usando un CollectionView (por ejemplo, ordenando, agrupando), pero normalmente usa Plantilla de datos para mostrar los elementos individuales que le permite usar todas sus propiedades.

Además, hay varios controles que funcionan bien con las colecciones, en primer lugar, debe saber si desea la selección, si no es un ItemsControl es una buena opción, de lo contrario debe utilizar un ListBox o ListView .

Las ListViews normalmente se emplean si tiene diferentes vistas para sus objetos, por ejemplo, una vista de detalles y una vista en miniatura. Puede usar ListView.View para esto, hay una vista existente en el marco, GridView , que ofrece columnas. Lo que Matthew Ferreira sugirió es exactamente lo que no se debe hacer con un ListView, ya que se quiere que las plantillas dependan de la vista actual; de hecho, ese código ni siquiera se compila, ya que DataTemplate solo puede tener un elemento secundario.

Se supone que ListViews encapsulan la lógica de vista en su vista para que pueda modificarse a voluntad. Si decide usar un ItemsControl o ListBox entonces lo que desea hacer es configurar el ItemTemplate . Lea la descripción general de los datos de los datos a la que me he vinculado, es un buen punto de partida.


Su colección de objetos probablemente se vea como su modelo. Lo habitual en WPF es agregar un ViewModel que traduzca y exponga los datos del modelo a un formato adecuado para el enlace. Dependiendo de lo que desee hacer, su VM podría, por ejemplo, formatear cada objeto en una representación de cadena y luego exponerlo como una colección de cadenas a la que se puede vincular y mostrar Listbox.


Es posible que desee considerar el uso de un control ListView en su lugar. ListView tiene soporte para columnas si planea mostrar varias propiedades de su objeto. Puede usar la propiedad ItemTemplate para formatear la visualización de su objeto. Por ejemplo:

<ListView ItemsSource="{Binding Path=myObjectCollection}"> <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=Title}"/> <CheckBox IsChecked="{Binding Path=ShouldCheck}"/> </DataTemplate> </ListView.ItemTemplate> </ListView>

Este ejemplo asume que su objeto tiene las propiedades Title y ShouldCheck .