CannibalSmith ([info]cannibalsmith) rakstīja [info]koderi kopienā,
@ 2009-03-17 16:34:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
svarīga .net atziņa
Q: Kāda atšķirība starp loga konstruktoru un Loaded eventu?
A: Konstruktors izpildās pie new, bet Loaded izpildās, kad pirmo reizi tiek izsaukta Show vai ShowDialog metode.

Visual Studio logu grafiskajā editorā izpildās InitializeComponent metode. Kā [info]bubu teica, konstruktorā var likt ko grib, bet XAML kodā nē. Konkrēti, nevajag likt arbitrary objektus resursu vārdnīcās, piemēram, iekš <Window.Resources>.

Starp citu, data binding izpildās iekš InitializeComponent starp BeginInit un EndInit izsaukumiem.


(Ierakstīt jaunu komentāru)


[info]bubu
2009-03-17 17:40 (saite)
Nu nezinu, nezinu. Ieliku formai konstruktorā faila atvēršan un TcpListener izveidošanu. Nekas nekrašoja.

Un vispār - eksistē tāds boolean propertijs DesignMode. Ja tas ir true - tad var nedarīt nekādas citas lietas kā vien UI, ja tas ļoti vajadzīgs.

(Atbildēt uz šo) (Diskusija)


[info]cannibalsmith
2009-03-17 17:46 (saite)
Jā, tā es darīju līdz šim. Tagad mokos un nevaru izdomāt kā ir pareizāk.

(Atbildēt uz šo) (Iepriekšējais)


[info]cannibalsmith
2009-03-31 21:16 (saite)
Tev bija taisnība. Skat izlaboto postu.

(Atbildēt uz šo) (Iepriekšējais)


[info]pirx
2009-03-31 20:57 (saite)
Ir vēl viena (diezgan būtiska) atšķirība. Konstruktors izpildās tad, kad Tu izveido jaunu formu (izmantojot new atslēgvārdu), bet Load notikums notiek pirms forma pirmo reizi tiek attēlota (pēc Form.Show()). Reizēm starp abiem šiem notikumiem mēdz būt diezgan liela starpība laikā un programmas stāvoklī.

(Atbildēt uz šo) (Diskusija)


[info]cannibalsmith
2009-03-31 21:07 (saite)
That too. Bet mana sākotnējā atbilde ir nepareiza. Šas izlabošu.

(Atbildēt uz šo) (Iepriekšējais)


Neesi iežurnalējies. Iežurnalēties?