IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: WPF - aktualizace datagridu s označeným řádkem

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
radomil.holec:29.6.2017 19:02

Ahoj,
mám aplikaci kde se každých 5s vyčtou hodnoty z DB a zapíšou je do datagridu. Uživatel by měl mít možnost zvolit si (označit) záznam v datagridu a já mu ukážu podrobnosti.

Ale každou aktualizaci datagridu (tj. každých 5 sekund) se daný řádek odoznačí. A já bych potřeboval aby zůstal označený i přes to že se datagrid updatuje.

PS: aplikace je WPF

Děkuji moc za případnou pomoc.

 
Odpovědět
29.6.2017 19:02
Avatar
Odpovídá na radomil.holec
Petr Štechmüller:29.6.2017 21:53

Ahoj, nešlo by zařídit, aby jsi si před každou aktualizaci uložil řekněme index označeného řádku a po updatu ho znovu označil?

Nahoru Odpovědět
29.6.2017 21:53
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Petr Štechmüller
radomil.holec:30.6.2017 14:04

To jsem již zkoušel ale z nějákého důvodu se nechtěl označit :D

 
Nahoru Odpovědět
30.6.2017 14:04
Avatar
Odpovídá na radomil.holec
Petr Štechmüller:30.6.2017 14:10

Tak sem dej nějaký kód, kterým aktualizuješ ten datagrid.

Nahoru Odpovědět
30.6.2017 14:10
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Petr Štechmüller
radomil.holec:30.6.2017 22:09
private void _BackWork_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    List<Stav_Kamionu> _ListKamionu = (List<Stav_Kamionu>)e.UserState;
    int vybranePole = DataGrid_Kamiony.SelectedIndex;
    DataGrid_Kamiony.Items.Clear();
    _ListKamionu.Sort((x, y) => y.Stav.CompareTo(x.Stav));
    foreach (Stav_Kamionu kamiony in _ListKamionu)
    {
        DataGrid_Kamiony.Items.Add(kamiony);
    }

    DataGrid_Kamiony.Items.Refresh();
    DataGrid_Kamiony.SelectedIndex = vybranePole;
}

Vím ten refresh po zapsání tam být nemusí.. ale jak zkouším různé varianty tak jsem ho tam nechal.

 
Nahoru Odpovědět
30.6.2017 22:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.