Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prism Mvvm i kreiranje novih instanci prozora

[es] :: .NET :: Prism Mvvm i kreiranje novih instanci prozora

[ Pregleda: 1559 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jovanpavlovic777

Član broj: 324940
Poruke: 33
*.dynamic.sbb.rs.



+2 Profil

icon Prism Mvvm i kreiranje novih instanci prozora16.11.2016. u 10:19 - pre 89 meseci
U Wpf aplikaciji koju pisem trebam na klik na item u ItemsControl da prikazem prozor koji ce sadrzati podatke iz toga itema (DataContext novoga prozora treba da bude taj kliknut item).

Nasao sam i shvatio nacin kako da u Prism/Mvvm/Mef to uradim sa jednim prozorom, preko InteractionRequestTrigger u View-u i InteractionRequest/DelegateCommand-e u ViewModelu.

Ali to mogu samo sa jednim, staticnim prozorom.

Kako da svaki put kreiram novi prozor klikom na item u ItemsControl, to nisam uspeo da shvatim nikako - ili negde pogresno shvatam sve, jer sam nov u Prism i Mvvm svetu i jos uvek razmisljam na stari nacin.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Prism Mvvm i kreiranje novih instanci prozora16.11.2016. u 11:25 - pre 89 meseci
InteractionRequests nije predvidjen za to sto ti hoces, to je (kao sto mu ime kaze) fancy way za prikaz modalnih inputa i slicnog.

Ono sto tebi treba je multi-shell aplikacija sa razlicitim region managerima, i to je moguce isto.
Pogledaj ovde: How to do multiple shells in my Prism app?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

jovanpavlovic777

Član broj: 324940
Poruke: 33
*.dynamic.sbb.rs.



+2 Profil

icon Re: Prism Mvvm i kreiranje novih instanci prozora17.11.2016. u 08:41 - pre 89 meseci
Hvala na pomoci i predlogu.
Pokusao sam juce absorbujem ceo koncept iza Multiple Shells u Prism-u, citao sam na vise mesta i pogledao sam i video od Briana Lagunasa na tu temu.
Mislim da sam ovaj deo sa novim IRegionManager shvatio (da se ne bi koristio globalni, ili injectovan od strane Mef-a), i da se posle toga kreira novi instanca za novi shell sa regionManager.CreateRegionManager()...
Pravo da kazem, moguce je da jos uvek pogresno radim jer jos uvek pokusavam da shvatim sve koncepte i platformu ...

Koliko mogu da shvatim Multiple Shells u Prism-u bi trebalo da se koristi u situaciji kada zelim isti Shell (sa istim layoutom i regionima u njemu) kao novu instancu u novom prozoru?

Ne znam da li sam bio jasan u postavci pitanja, meni za aplikaciju na kojoj radim ne treba nova instanca identicnog glavnog Shell-a (glavni Window aplikacije) - vec potpuno novi prozor, sa drugacijim layoutom, sa svojim regionima i user controlama.

U tom novom Window-u cu naprimer koristiti AvalonDock dok u glavnom prozoru (Shellu) necu koristiti.

Pre Prisma i Mvvm-a, ranije to sam ovako (staticki) resavao na sledeci nacin:

Code:
    
private static List<Window> AllAppWindows = new List<Window>();

private static void OpenWindow(Window wnd, string desiredName)
{
    Window mywindow = AllAppWindows.SingleOrDefault(x => x.Name == desiredName);
    if (mywindow == null)
    {
        mywindow = wnd;
        AllAppWindows.Add(mywindow);
    }
    mywindow .Show();
}


Edit: napravio sam samo malu izmenu u source-u metoda da objasnim sta zelim da postignem.

[Ovu poruku je menjao jovanpavlovic777 dana 17.11.2016. u 09:53 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Prism Mvvm i kreiranje novih instanci prozora17.11.2016. u 16:48 - pre 89 meseci
Da, razumeo sam, zato ti i treba novi RegionManager jer su imena view-a unutar jednog region menadzera jedinstveni a ti hoces vise prozora sa istim rasporedom, zato svaki od tih novih prozora mora da ima novi region manager. Onda mozes da koristis iste Views u svim prozorima tog tipa.

Ovo je malo advanced Prism tehnika, treba prvo da budes bas dobro verziran sa Dependency Injection konceptom i onda sa Prismom i njegovom arhitekturom (Shell/RegionManager/Region/View) i interkonekcijom.
MEF je vrlo lako uputiti da ti svaki put eksportuje novu instancu koristeci PartCreationPolicy(CreationPolicy.NonShared) atribut. U prismu vise neces drzati listu prozora vec ces emitovati prozore i u njima koristiti neki eventing mehanizam, npr EventAggregator da komuniciras sa svim ili pojedinacnim prozorima (npr ako se aplikacija gasi, treba da ih obavestis da se zatvore, itd.)


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: Prism Mvvm i kreiranje novih instanci prozora

[ Pregleda: 1559 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.