Pregunta

Tengo una View List que tiene una ObservableCollection como suemento de elementos, y tiene varias columnas. Una de ellas es una columna de estado que, dependiendo del estado actual del elemento, muestra un mensaje diferente. Actualmente, esto se implementa como una cadena básica, y aunque funciona, está lejos de ser bonita o amigable para los usuarios. Quiero poder variar el tipo de salida para adaptarse más adecuadamente al estado del artículo.

Investigué un poco y sé que necesito usar una CellTemplate para afectar la pantalla, pero todos los diferentes tipos de plantillas simplemente me abruman hasta el punto en que no puedo entender a dónde ir a continuación.

Mi código (excluyendo mucha otra pelea de ListView) es el siguiente:

<ListView Name="itemsListView" ItemsSource="{Binding Source={StaticResource listingDataView}}" IsSynchronizedWithCurrentItem="True">
    ...
    <ListView.View>
         <GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Item Information">
             ...
             <GridViewColumn DisplayMemberBinding="{Binding Path=StatusMessage}" Width="283" Header="Status" HeaderContainerStyle="{StaticResource GVHeaderLeftAlignedStyle}" />
         </GridView>
    </ListView.View>
</ListView>

Sí, los elementos tienen un "mensaje de estado" codificado que se actualizan junto con otras propiedades que son realmente relevantes para el código, lo que causa duplicación fea en otra parte de mi código. (Y sí, sé que esto está lejos de ser bonito, pero quiero mejorar esto también). Esa propiedad se llamaría ItemState Como no soy tan creativo.

Entonces, mi pregunta es: ¿Cómo puedo variar esta columna para tener la pantalla más adecuada para el estado dado? Las descripciones textuales servirán para muchos estados, pero algunas son bastante largas y podrían beneficiarse de un texto con una barra de progreso además, y tal vez queda algún tipo de tiempo. Otro estado se beneficiaría de tener un hipervínculo en el que se puede hacer clic. En otras palabras, creo que necesito al menos 3 CellTemplates diferentes.

Me doy cuenta de que es una pregunta bastante abierta que sufre en gran medida los errores de diseño de alguien (= yo) que tiene bastante poca experiencia con WPF, pero esa es exactamente la razón por la que espero que alguien experimentado me ponga directamente con un código básico Antes de hacer un desastre aún peor de lo que ya lo he hecho. :)

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top