Kezdőoldal » Számítástechnika » Programozás » WPF MVVM-ben hogyan jelenítsek...

WPF MVVM-ben hogyan jelenítsek meg felugró ablakot, olyat, mint amilyet a MessageBox. Show () generál?

Figyelt kérdés

Napok mentek el, hogy ezt kerestem és már elegem van plusz ki is futottam az időből.

Amiket találtam a neten, azt zömében nem is értettem.


Már ott tartok, hogy MessageBox.Show() lesz és nem érdekel. :(


Van erre ötletetek?


Prism-t használok amúgy.


2019. nov. 21. 16:39
 1/4 A kérdező kommentje:

Ha valaki látja... :)


Arra jutottam, hogy csinálnék egy külön class-t, ami önmagában független a ViewModel-ektől (meg minden mástól is), és abba két static method-ot, mert nekem kell 1 db, csak leokézható dialog és 1 db, amin van cancel gomb is.


Ha egy külön view-t csinálnék, mint saját "MessageBox", az nemcsak, hogy feleslegesen körülményes, hanem nem a speckó Windows-os felugró ablak lenne. Egyébként az általam készített view hívása is sérti az MVVM alapelveket.



Kérlek, ha valamit tévesen írtam, ne bántsatok. :)

2019. nov. 21. 20:18
 2/4 anonim ***** válasza:
100%
Csinálj egy IMessageBoxService-t. A ViewModel csak a IMessageBoxService használjon. És az(ok) az osztályok, amik megvalósítják IMessageBoxService-t azok használják majd MessageBox.Show()-t. Nekem sincs jobb ötletem, gondolom neked is az a problémád, hogy a ViewModel-be nem akarsz View részt keverni.
2019. nov. 21. 20:21
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
100%

[link]


Tessék másnak is volt ilyen ötlete. Elvileg valid.

2019. nov. 21. 20:30
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Igen, hogy a ViewModel-ben az ég egy adta világon semmilyen Windows-ra utaló elem ne legyen, ne tudja a VM, ki ő és honnan jön az, amit használ. :D


Nekem egy static osztály volt kényelmes erre a célra, nem gondolom azt, hogy példány kellene belőle. Ha igen, miért? (Nem 100%-ban tiszta. :( )


A projektet én is mindenhol teletettem Interface objektumokkal, de őszintén szólva csak azért, mert azt láttam, hogy úgy szokás illetve van, amit lényegében csak így lehet használni.

De miért jó?


Úgy tudom, hogy pl. az

private ICommand _myCommand

(mint egy példa) bármilyen objektum lehet, ami az ICommand iterface-t megvalósítja. Lényegében automatikusan "kasztolódik".

Node miért nem jó kapásból a

private DelegateCommand _myCommand?

2019. nov. 21. 21:29

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!