Tengo dos cuadrículas de datos en una sola vista, pero las colecciones que son ItemsSource de estas cuadrículas de datos están en diferentes modelos de vista. Entonces, ¿es posible enlazar estas dos cuadrículas de datos con las colecciones en dos modelos de vista diferentes?¿Puede una vista tener dos modelos de vista como su contexto de datos?
6
A
Respuesta
8
ir para un modelo de vista la combinación de ambos:
public class ViewModelA {
public ObservableCollection<CustomClass> Items { get; set; }
/* properties, etc. */
}
public class ViewModelB {
/* properties, etc. */
}
public class CombiningViewModel {
public ViewModelA A { get; set; }
public ViewModelB B { get; set; }
}
vinculación puede realizarse como
<DataGrid ItemsSource="{Binding A.Items}">
<!-- Sample, not complete -->
</DataGrid>
0
Puede establecer el DataContext para cada DataGrid en lugar de para la vista de contenedor.
<Grid>
<DataGrid ... DataContext="..." />
<DataGrid ... DataContext="..." />
</Grid>
O no utilice un DataContext y se unen a los modelos directamente
<DataGrid ItemsSource="{Binding Source={StaticResource ...}}" />
1
No, no directamente. Usted tiene opciones sin embargo:
podría establecer el DataContext de la vista a sí mismo, a continuación, exponer cada modelo de vista a través de una propiedad separada y se unen a esas propiedades:
public class MyView : Window
{
public MyView()
{
this.DataContext = this;
}
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
O usted podría hacer un modelo de vista envoltorio que bien extiende (hereda de) uno de los modelos de vista, o los envuelve a ambos y muestra las propiedades apropiadas:
public class MyCompositeViewModel
{
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
Cuestiones relacionadas
- 1. ¿Cómo puede una vista personalizada tener acceso a su actividad?
- 2. Uso de dos modelos fuertemente tipados para una vista MVC
- 3. Datos de dos tablas en una vista
- 4. ¿Puede una vista principal tener más de una colección?
- 5. Dos modelos en una sola vista en ASP MVC 3
- 6. Modelos específicos de vista en ASP.NET MVC?
- 7. Múltiples modelos enviados a una sola instancia de vista
- 8. MVVM y modelos de vista anidados
- 9. Herencia de MVVM con modelos de vista
- 10. Android: tener una vista arbitraria de la vista debajo de otra vista como el teclado del software
- 11. MVVM: modelos de vista finos y modelos enriquecidos
- 12. CodeIgniter: pasar datos a una vista incluida en una vista
- 13. ASP.NET MVC: ¿Puede una vista parcial tener un controlador?
- 14. ¿Vista autorizada o configurar vista como autorizada?
- 15. ¿Puede la vista de texto tener letras en diferentes colores?
- 16. MVC: ¿los modelos interactúan con la vista?
- 17. Usando Markdown como una Vista de Grails
- 18. ¿Cómo obtener ModelMetadata fuera del contexto de una vista?
- 19. ¿Se puede cargar una vista dividida dentro de la vista de detalle de otra vista dividida?
- 20. ¿Puedo usar una vista de base de datos como modelo en Django?
- 21. ¿Cómo ubicar el contexto dentro de una vista personalizada?
- 22. Dump MySQL vista como una tabla con datos
- 23. cómo acceder a los modelos de datos de una vista en Backbone.js
- 24. ¿Los modelos de vista se usan en los rieles?
- 25. ¿Cómo "SECAR" los atributos de C# en Modelos y Modelos de Vista?
- 26. Tener vista escuchar evento de recopilación
- 27. ¿Cuándo dividir una vista MVC en dos?
- 28. Modelos de vista de mapa a KnockoutJS Validación
- 29. Práctica recomendada para mantener los modelos y los modelos de vista sincronizados
- 30. Cómo editar varios modelos en una sola Vista Razor
+1 También me gustaría un ViewModel compuesto en esta instancia. –