Domanda

ho il controllo ListView nella mia richiesta, che è binded alla raccolta di CustomObject Elenco << strong> CustomObject >. Il CustomObject ha vista separata. Questo ListView ha vista del modello separato.

Il _customobject collezione List è containted nella classe ListView ViewModel.

La mia domanda:

Voglio richiamare una vista che mostrano le proprietà di oggetto personalizzato, quando l'utente doppio clic su qualsiasi riga di ListView. Il comando doppio click ListView è binded alla ListViewDoublClick Comando nel modello di vista. Il CustomObject è nell'argomento caso di comando doppio click ListView. Per raggiungere questo devo passare l'oggetto personalizzato (o una proprietà ID univoco di oggetto personalizzato attraverso il quale posso recuperare l'oggetto personalizzato dalla raccolta) come parametro di comando.

Si prega di suggerire me la soluzione !!

È stato utile?

Soluzione

Il modo più semplice per farlo è quello di aggiungere un gestore di eventi doppio click alla lista. Ricordate: MVVM non significa alcun codice nella visualizzazione! Vuol dire che la vista gestisce solo vista preoccupazioni. Si può fare davvero un buon argomento che i EventArgs sono solo significato per la vista e, se si desidera passare al ViewModel si dovrebbe passare solo le informazioni rilevanti. Se si deve fare qualcosa di simile estrazione di dati da un EventArgs per passarlo al ViewModel, che è accettabile e corretta ... e meglio di passare i EventArgs giù nel ViewModel, IMHO.

(sono sicuro che avrò qualche disaccordo su questo punto, ma si tratta di interazione UI è una vista preoccupazione e se l'alternativa sta scrivendo un comportamento o utilizzando un framework per ottenere un singolo controllo a lavorare su una singola pagina, ricordare:. YAGNI e modelli non sono Religione)

Molti dei quadri MVVM ti permettono di fare questo (anche se c'è un sacco di discussione su se è una buona idea o no). Inparticolare, il Toolkit MVVM Luce aggiunto di questo un po 'di tempo fa per sostenere il drag and drop (se non ricordo il post sul blog in modo corretto).

Se non si utilizza un framework MVVM, ho liquidata scrivendo un comportamento da permettermi di fare questo se stavo per fare la stessa cosa in più posti. In questo caso, di solito estrarre le informazioni che mi interessa dalle EventArgs (vale a dire probabilmente non si vuole veramente i args evento completo, ma probabilmente importa quale articolo è stato cliccato e forse un paio di altri pezzi di dati).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top