Tengo un modelo de vista llamado
ViewModelClass
que contiene un booleano
Tengo otro modelo de vista que contiene
ObservableCollection m_allProjects;
Entonces tengo esto en mi opinión:
Ahora quiero, basado en boolean en All-Collections-collection, usar una datatemplate diferente. ¿Cuál es la mejor manera de hacer esto?
Sé que puedo hacer esto con diferentes ViewModels y usar un tipo de objeto basado en ViewModel, pero prefiero solo usar 1 view model.
EDITAR:
Quiero hacer esto con desencadenadores de datos. ¿Alguien puede proporcionarme algún código, por favor?
Usualmente uso un ContentControl
para mostrar los datos y cambio el ContentTemplate
en un activador basado en la propiedad que cambia.
Aquí hay un ejemplo que publiqué en mi blog que intercambia una plantilla basada en una propiedad vinculada
Un DataTemplateSelector
también funcionará, pero solo si la propiedad que determina qué plantilla mostrar no cambia, ya que los DataTemplateSelectors
no responden para cambiar las notificaciones. Usualmente los evito si es posible ya que también prefiero mi lógica de selección de vista en mi vista para poder ver qué está pasando.
si desea cambiar la vista de elementos de control de elementos en el caso de ViewModelClass boolean, puede simplemente usar un estilo de disparo de datos en su control de usuario ProjectInfoView.