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í.
Mezi 13:00 až cca 16:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.
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.