WPF - konverze hodnot   otázka

WPF

Dobrý den,

ve WPF aplikaci v datagridu pro jeden sloupec používám value conversion. V tabulce je hodně záznamů a při scrolování se konverze provede znova. Nevíte někdo proč se konverze provádí pořád a ne jen při prvním načtení dat do datadridu? Brzdí to aplikaci¨.

Děkuji

<TextBlock  Text="{Binding Converter={StaticResource myConverter},Path=name}"/>

    public class PathToStringConvertor : IValueConverter
    {
public object Convert(object value, Type targerType, object parameter, System.Globalization.CultureInfo culture)
        {
            try
            {
               jmeno = (string)value;
               return .................;
            }
            catch
            {
                return "nic nic";
            }
             
        }
}
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Napadá mě to, že DataGrid ve WPF používá virtualizační mód, a proto se položky vytvářejí dynamicky až když se zobrazují. Zkuste si pohrát s nastavením VirtualizingStackPanel .IsVirtualizing a VirtualizingStackPanel.VirtualizationMode, více viz např.:

https://social.msdn.microsoft.com/Forums...

http://stackoverflow.com/questions/17045...

Na druhou stranu volání Converteru by nemělo být nic náročného, a to že se tedy pokaždé volá by nemuselo být špatně. Koukám, že v converteru odchytáváte exceptions, znamená to, že kód converteru exception vyvolává? Pokud ano, tak to by mohl být ten problém zpomalení. Exception jsou obecně pomalé, a je vždy daleko výkonnější ošetřit pokud to jde kód tak aby nevznikali(například používat metody TryParse, místo Parse a odchytávat vyjímku, atd.)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback