350 messaggi dal 08 febbraio 2009
Salve a tutti.

Il mio problema è il seguente: all'interno di un ViewModel ho un pulsante (ICommand) che deve aprire una nuova finestra. Vorrei fare in modo che questa finestra sia modale (ShowDialog) e che abbia come "Owner" la finestra attuale.

Finchè si tratta di aprire la finestra come modale, beh è abbastanza facile.
Quello che non so è: come faccio dal ViewModel a caricare il riferimento alla finestra attuale (ovvero quella che contiene il mio pulsante)?

Penso si debba usare il classico "GetDefaultView", però non so che parametro passargli in questo caso

Grazie mille.
215 messaggi dal 07 settembre 2005
Nell'ottica del ViewModel io creerei una property o DependencyProperty sul ViewModel chiamata ParentWindow che poi dalla window Bindi con la window stessa.

Ciao.
Riccardo.
Secondo me, per essere proprio astratti astratti, dovresti creare una specie di factory per caricare le view. Mi spiego: il ViewModel dovrebbe essere testabile ed è ovvio che in fase di test aprire direttamente le finestre non è bello e quindi in generale, avere un riferimento diretto alla creazione di una Window, non è bello.
Puoi però fare questo componente che a cambia a seconda che sei in test o meno (nel primo caso non farà niente) il quale sa trattare le window ed è lui che le instanzia e quindi sa referenziarle tra loro.

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC