NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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: Aktualizace DataGridu

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

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
natech
Člen
Avatar
natech:11.9.2014 21:07

Ahoj,
Ve WPF jsem vytvořil okno s komponentou datagrid. Na něj jsem připojil data z databáze přes LINQ TO SQL.

dataGrid1.ItemsSource = context.Sklads;

Při vložení dalšího řádku programově se datagrid neaktualizuje a zůstane nezobrazen. zobrazí se až po novém spuštění aplikace.
nepomůže ani

dataGrid1.Items.Refresh();

ani

dataGrid1.ItemsSource = null;
                dataGrid1.ItemsSource = context.Sklads;

Prohledal jsem net, a rada byla použít observable kolekci a z linq si data překopírovat do této kolekce. To se mi zdá jako blbost.

Linq to SQL jsem nahradil entity frameworkem, ale k výsledku jsem se nedostal.
Jaký systém přístupu k databázi použít, aby to šlo jednoduše bez obcházení čehokoliv? Nebo dělám nějakou jinou chybu?

 
Odpovědět
11.9.2014 21:07
Avatar
Odpovídá na natech
sadlomaslox25:11.9.2014 23:10

jedna se o EF CodeFirst ale myslim ze stejne to bude i v DatabaseFirst ktere pouzivas. (ale jinak doporucuji prejit na UnitOfWork styl prace s contextem)

using System.Data.Entity;
using System.Windows;

namespace test_na_ef
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        ClientContext con = new ClientContext();
        public MainWindow()
        {
            InitializeComponent();
            con.Clients.Load();
            dg1.ItemsSource = con.Clients.Local;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {

            con.Clients.Add(new Client() {Age = 3, Name = "tom"});
            con.SaveChanges();
        }
    }

    public class ClientContext : DbContext
    {
        public DbSet<Client> Clients { get; set; }
    }

    public class Client
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }
}
 
Nahoru Odpovědět
11.9.2014 23:10
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 2 zpráv z 2.