Avatar billede johny Nybegynder
28. april 2008 - 12:07 Der er 1 kommentar

Tilføj eventhandler i constructor - WPF

Jeg har lavet en WPF GUI, som har et border hvori jeg ligger andre "vinduer" (UserControl) ind i, og disse skifter jeg så ud med knapper på en bar i siden.

Det jeg så gerne vil undgå, er for stor en kobling mellem de enkelte usercontrols og mainvinduet, og derfor ikke sende referencer til mit main window med ned i de enkelte usercontrols.

Problemet er så, at nogen gange skal indholdet i min border kunne skiftes ud "af sig selv", i den forstand, at nogen af mine UserControls, skal kunne skifte sig ud med nogen af de andre, hvilket pt. er noget jeg løser således:

if(Parent is Border)
    ((Border)Parent).Child = new TestVindue();

Det er koblinger som det jeg gerne vil undgå, og tænkte derfor istedet i over i noget med event i stedet til at håndtere det. På den måde er det mit mainwindow der bliver informeret om at der skal ske ændringer, og det tager den sig så af.

So far so good, og det ser ud til at klare skærene for mig. Problemet er så bare, at hvis jeg ikke har forbindelse til serveren, så er der nogle UserControls der får en ugyldig opstart, og de skal så skiftes ud med noget andet. Men da det allerede sker i konstruktøren, så sker det før jeg får tilføjet en eventhandler, og så kan jeg ikke klare det af den vej.

Er der en måde hvorpå jeg kan sende et link til metoden med, og tilføje eventhandleren allerede i konstruktøren, eller bliver jeg nød til at håndtere den her problemstilling med exceptions?

Eller griber jeg det evt. helt forkert an, og burde gøre det på en anden måde?
Avatar billede johny Nybegynder
30. april 2008 - 19:39 #1
Ingen der har et bud på en løsning her? Jeg er selv lidt fortabt over hvordan det lige gøres bedst?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester