Creazione di controlli dinamici nel code-behind o ViewModel?

1

In questo momento sto lavorando per la migrazione di un'app che ho realizzato interamente utilizzando il codice dietro a MVVM e ho avuto una domanda su dove dovrei creare i controlli in modo dinamico.

Fondamentalmente ho un servizio web che restituisce {#} di elementi. Per ogni articolo verrà creato un pulsante e l'oggetto verrà assegnato al suo contesto dati.

Fino ad ora so che dovrei impostare il comando su ViewModel e la proprietà Command. So anche che dovrei chiamare quegli elementi nel mio servizio web all'interno del modello di vista (o modello, adesso è irrilevante per la domanda). La parte che è discutibile è dove creare i pulsanti.

Non mi piaceva l'idea di creare pulsanti nel mio ViewModel poiché era, beh, correlato alla vista. È corretto o dovrei crearli all'interno di ViewModel e poi alcuni come passarli alla vista tramite Messaging?

    
posta Edward 03.02.2012 - 16:20
fonte

2 risposte

4

Se gli elementi sono presentati tramite ItemsControl , ListBox , ecc. allora puoi definire un ItemTemplate e in quel modello avere un Button che si lega in modo appropriato. Quando Silverlight / WPF vedono il tipo di oggetto, verrà "gonfiato" in base a quanto definito da ItemTemplate .

Una buona risorsa.

    
risposta data 03.02.2012 - 17:48
fonte
2

Il tuo viewmodel dovrebbe esporre la raccolta di elementi e la vista dovrebbe consumare tali elementi tramite il collegamento dati, creando i pulsanti in qualsiasi controllo (elenco ecc.) li sta consumando.

    
risposta data 03.02.2012 - 16:26
fonte

Leggi altre domande sui tag