Ho due datagrids in una singola vista ma le raccolte che sono ItemsSource di questi datagrids sono in diversi modelli di vista. Quindi è possibile collegare questi due datagrids con le collezioni in due diversi modelli di vista?Una vista può avere due modelli di vista come contesto dati?
6
A
risposta
8
andare per un modello di vista che unisce entrambe le cose:
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; }
}
legame può essere fatto come
<DataGrid ItemsSource="{Binding A.Items}">
<!-- Sample, not complete -->
</DataGrid>
0
È possibile impostare DataContext per ogni DataGrid anziché per la vista Contenitore.
<Grid>
<DataGrid ... DataContext="..." />
<DataGrid ... DataContext="..." />
</Grid>
O non utilizzare un DataContext e Bind ai modelli direttamente
<DataGrid ItemsSource="{Binding Source={StaticResource ...}}" />
1
No, non direttamente. Avete opzioni se:
è possibile impostare il DataContext della vista a se stesso, poi esporre ogni ViewModel attraverso una proprietà separata e si legano a quelle proprietà:
public class MyView : Window
{
public MyView()
{
this.DataContext = this;
}
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
Oppure si potrebbe fare un ViewModel involucro che o si estende (eredita da) una delle ViewModels, o entrambi avvolge e superfici le proprietà appropriate:
public class MyCompositeViewModel
{
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
Problemi correlati
- 1. Come passare due modelli a una vista
- 2. Modelli di due modelli in una vista: Backbone/Marionette
- 3. Dati da due tabelle in una vista
- 4. Modelli con vista generica?
- 5. differenza tra modelli e modelli di vista
- 6. android - Come ottenere la vista dal contesto?
- 7. Due tavoli su una vista in rapida
- 8. vista Dynamical secondo i dati
- 9. Vista Django, modelli, modulo, denominazione app
- 10. Carica una vista all'interno di un'altra vista
- 11. Sails.js - passaggio di dati a una vista
- 12. Come sovrascrivere una vista personalizzata (vista surreale)
- 13. Avere vista ascolta l'evento di raccolta
- 14. Aggiorna una vista parziale da un'altra vista parziale - ASP.NET MVC2
- 15. aggiunta di una vista personalizzata a una vista di avviso
- 16. Quando dividere una vista MVC in due?
- 17. vista Android confronto tra due punti di vista per l'uguaglianza
- 18. Utilizzo di una vista singola per i modelli mvc derivati
- 19. Come impedire l'ordinamento della vista griglia dati
- 20. Wordpress: una pagina può avere due genitori?
- 21. come accedere a modelli di dati da una vista in backbone.js
- 22. Ottenere il contesto all'interno di una vista personalizzata?
- 23. Come configurare Durandal.js per avere più aree con viste e modelli di vista nella stessa cartella?
- 24. Dovrei avere un NSFetchedResultsController in ogni vista?
- 25. Rendering di una vista di JBuilder nella vista html
- 26. middleware vs. processore contesto per vista dipendente navigazione/visualizzazione
- 27. Passaggio da una vista elenco a una vista griglia
- 28. Segue tra due controllori vista
- 29. Vista Explorer vista cartella/cartella
- 30. Più app di django in una vista
+1 mi sarebbe anche fare una ViewModel composito in questo caso. –