Diskuze: Aktualizace DataGridu

C# .NET .NET (C# a Visual Basic) Aktualizace DataGridu American English version English version

Avatar
natech
Člen
Avatar
natech:

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:

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.