Oppure

Loading
12/07/10 15:29
dedalux
Gente, starò domandandovi una gran cacchiata, ma, mi riderete dietro, non riesco ad aprire da un Command una Window e chiuderla da un altro Command, della serie:
la mia applicazione segue il MVVM, nella MainWindow un pulsante mi visualizza una finestra che ha come datacontext una nuova fattura, e i controlli bindati a questa per modificare i vari valori. Al pulsante di conferma dovrei abbinare un command che chiuda la finestra e aggiunga la fattura-datacontext alla collezione che si trova nel ViewModel.
I comandi li definisco nel ViewModel.
Io ho provato a fare cosi

  Dim FW As FatturaWindow
        Private _Aggiungi As ICommand
        Public ReadOnly Property Aggiungi() As ICommand
            Get
            '.....
            End Get
        End Property


        Private Function CanAggiungiExecute(ByVal param As Object) As Boolean
            Return True
        End Function


        Private Sub AggiungiExecute(ByVal param As Object)
            Try
                FW = New FatturaWindow With {.DataContext = New Fattura}
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub


e una cosa simile per la conferma

Private Sub ConfermaExecute(ByVal param As Object)
            Try
                Fatture.Add(CType(FW.DataContext, Fattura))
                SalvaFatture()
                FW.Close()
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub


ConfermaExecute genera un'eccezione per FW come oggetto non impostato su un'istanza di oggetto..

abbiate pietà :D
Ultima modifica effettuata da dedalux 12/07/10 15:39
aaa
12/07/10 17:53
netarrow
E' un problema tipico quando si inizia con il MVVM.

Infatti è normale che il ViewModel non sappia assolutamente nulla della vista che lo usa, sennò non ci sarebbe disaccoppiamento; è anche vero però che in questo modo il ViewModel ha difficoltà a comunicare in maniera più approfondita con le viste.

Ti suggerisco la lettura di questo articolo: winfxitalia.com/articoli/presentation-foundation/…



aaa
12/07/10 18:54
dedalux
L'avevo gia incontrato sto articolo, ma nn me lo sono mai letto >.<
ora rimedio,
grazie Netarrow
aaa