61 messaggi dal 20 maggio 2009
Ciao,

inserendo una finestra secondaria in un progetto silverlight, ho notat che per chiuderla bisogna impostare il alore DialogResult a true oppure false.

Di default viene fatto tramite codebehind, gestendo un evento click.

Vorrei però evitare di inserire eventi nel codebehind, e fare tutto in MVVM.

Ho quindi provato a bindare la proprietà DialogResult ad una proprietà definita nel viewmodel che torna un valore Nullable<bool> o bool?

ma quando viene effettuato il binding mi va in eccezzione:

L'operazione per impostare la proprietà 'System.Windows.Controls.ChildWindow.DialogResult' ha generato un'eccezione

Un oggetto di tipo 'System.Windows.Data.Binding' non può essere convertito nel tipo 'System.Nullable`1[System.Boolean]'.

Qualche idea ???

Vivaldi Francesco
DialogResult non è una dependency property, perciò non la puoi mettere in binding. Se usi MVVM Light Toolkit hai il BindingListener che ti permette di intercettare il cambio della proprietà e di agire di conseguenza.
Oppure usa il mediator pattern: lanci un "messaggio" e lo intercetti dalla view, chiudendo.
Oppure ancora passa un riferimento della view al viewmodel, tramite un'interfaccia.

Ciao

Il mio blog
Homepage
61 messaggi dal 20 maggio 2009
grazie delle info ho usato mediator pattern tramite un evento e funziona benissimo.

Vivaldi Francesco

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.