Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [wpf vb] Aiuto comunicazione tra finestre
Forum - C# / VB.NET - [wpf vb] Aiuto comunicazione tra finestre

Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 91
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 18:16
Venerdì, 28/09/2012
Non saprei in che altro modo intitolare questa discussione, ma vi spiego subito il mio problema.

Nella mai window principale ho un controllo TreeView impostato tutto da file xaml in questo modo:

Codice sorgente - presumibilmente Plain Text

  1. <TreeView name="treeview1" ..>
  2.    <TreeViewItem name="main">
  3.    </TreeViewItem>  
  4. </TreeView>



Ed un pulsante che mi apre un'altra window, dove all'interno c'è un pulsante che mi dovrebbe aggiungere un'elemento all'interno del nodo main ( non so se mi spiego ), ora non ricordo con precisione come fare ciò, ma se non sbaglio, quando dovevo fare ciò in un'applicazione windowForm facevo cosi, se ricordo bene:

Codice sorgente - presumibilmente Plain Text

  1. My.Windows.nome_window.main.items.add("valore_item")



Ho provato a fare questo anche nell'applicazione wpf, ma niente, non funziona, non so se avete capito il mio problema, ma come potrei risolvere?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 10:46
Sabato, 29/09/2012

ti assicuro che c'è un modo per farlo così, ma non te lo dirò :)
invece ti vorrei invitare ad usare un approcio più elegante alla risoluzione di questo problema.
quando si programma in WPF (o SL) è davvero proficuo utilizzare un pattern di sviluppo chiamato MVVM http://en.wikipedia.org/wiki/Model_View_ViewModel

questo pattern ti consente di lasciare vuoto il code behind della view e ti permette di scrivere del codice elegante e testabile nel viewmodel (logica di presentazione).

è assolutamente d'obbligo utilizzare un toolkit di sviluppo come ad esempio mvvmlight http://mvvmlight.codeplex.com/ che contiene tutta una serie di utility per semplificare lo sviluppo con questo pattern.

detto questo, come risolvere il tuo problema?

prima di indirizzarti dalla parte giusta ti consiglio di studiarti quanto sopra aggiungendoci anche l'IOC http://en.wikipedia.org/wiki/Inversion_of_control e in particolare il pattern ServiceLocator http://stefanoricciardi.com/2009/09/25/service-locator-pat ...

ecco qui la soluzione al tuo problema:

http://www.codeproject.com/Articles/36745/Showing-Dialogs- ...

PM Quote
Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 91
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 11:56
Sabato, 29/09/2012
Bhe.. a dire la verità il Modello MVVM avevo già iniziato a vedermelo, ma non sarei del tutto convinto, mi conviene utilizzarlo, visto che per ora, e credo solamente per questo problema, avrei bisogni di questo modello, in ogni caso vedo i link da te postati.

PM Quote