Diskuze: WPF DataBinding - Update textBlocku ze stringu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Mě vždycky fungovalo zavolat tuhle metodu
public static void DoEvents()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
new Action(delegate { }));
}
po přidání textu
(Je to ekvivalent k Application.DoEvents() ve WF)
Snad to nebude vypadat jako blbý dotaz, ale přece když použiješ
tbxText.Text += text;
Tak se ti ten text v komponentě objeví hned... nebo se pletu?
Pleteš, pokud jedeš v cyklu, tak to čeká do projetí eventu aplikace a updatu elementů. To že se ti to objeví hned je tím že to vlákno nemáš vytížený a tudíž nemusí čekat na update.
Díky. Máš naprostou pravdu. Mohl by jsi mi ještě vysvětlit, jak to celé funguje? Chtěl jsem ti dát i++, ale zatím nemohu...
Tím že vlastně použiješ cyklus tak celé hlavní vlákno provádí tu operaci co je v cyklu a nemůže se dostat k tomu aby přidalo ten text to TextBlocku. Dá se to ošetřit třeba využitím vláken, nebo BackgroundWorker. Ta metoda co jsem ti napsal funguje tak že ve vlákně v pozadí provede prázdný příkaz a aplikace se obnoví (updatuje). Tudíž neblokuje hlavní vlákno. Ale i přesto to moc nedopoporučuju, jsou tu i některé elementy které nemají schopnost se takto obnovit na příkaz, ale postačí ti než se naučíš pracovat s vlákny.
Aha eště jsem na toto
nenarazil, tak díky moc za osvětlení.
Zobrazeno 8 zpráv z 8.