Avatar billede mk_ Nybegynder
13. april 2009 - 00:31 Der er 4 kommentarer og
1 løsning

Ændre en form's objekter fra en klasse?

Hej.

Jeg vil gerne køre en af mine klasser som en baggrunds-tråd, og det gør den også helt fint, men hvordan kan jeg ændre en property på f.eks. label1 i Window1 (Jeg laver et WPF App, i dette eksempel) så Window1.label1.Content = "Goddag"; eller noget lign. dette, kan det overhovedet lade sig gøre?

Tak på forhånd
Avatar billede arne_v Ekspert
13. april 2009 - 00:43 #1
Den kode som kører i din tråd skal have en ref til din form/window og så skal den muligvis kalde Invoke for at ændre noget fremfor at ændre det direkte.
Avatar billede mk_ Nybegynder
13. april 2009 - 00:47 #2
Hmm, jeg forstår ikke rigtigt hvad du mener, kan du give et eksempel?
Avatar billede lasserasch Juniormester
13. april 2009 - 02:33 #3
Nå, arne er nok smuttet under dynen :-) Jeg kan gi' dig et i stedet for så...

Her er et simpelt eksempel.

http://www.r-coding.dk/downloads/eksperten/2009/wpf/threads_eksempel01.zip


Faktum er at du er nødt til at have en reference til din form/window for at kunne arbejde med det fra en anden klasse/tråd.

Og fordi du vil gøre det fra en anden tråd, så er du nødt til at invoke på referencen til dit window/form. Det gøres gennem Dispatcher klassen i WPF. Det er rimelig simpelt i både alm. windows applikationer og i WPF.

Eksemplet skulle være til at forstå, ellers spør' du bare...

Mvh.
Lasse
Avatar billede mk_ Nybegynder
13. april 2009 - 18:16 #4
Åh, lige det jeg skulle bruge, tusinde tak! :)

Smid et svar.
Avatar billede lasserasch Juniormester
13. april 2009 - 18:30 #5
:-)
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