Mam DataFrid WPF z niektórych danych. Możesz dodawać wiersze w oddzielnym oknie. DataContext jest taki sam, obiekt LINQ-SQL. Powiązanie jest również takie samo, wiążę właściwość "ItemsSource" z tabelą.Jak odświeżyć ramkę danych WPF?
W drugim oknie, gdy użytkownik kliknie "Zapisz", utworzę wiersz programowo i doda go za pomocą "InsertOnSubmit". Następnie używam metody "SubmitChanges" DataContext.
Mój problem polega na tym, że DataGrid nie jest aktualizowana. Jeśli ponownie uruchomię aplikację, zobaczę nowy wiersz, więc znajduje się on w bazie danych, ale nie mogłem znaleźć sposobu na odświeżenie DataGrid.
Do tej pory próbowałem użyć "UpdateTarget" w BindingExpression DataGrid, ale to nie pomogło. Próbowałem również "dataGrid.Items.Refresh()" - ten sam wynik. Jak mogę to naprawić?
Twoje rozwiązanie oczywiście działa. Po prostu pomyślałem, że mogę uciec prostym znacznikom powiązania XAML. – KovBal
Jeśli używamy ObservableCollection jako pomostu między linq do sql a formantem, to w jaki sposób możemy użyć SubmitChanges(), aby odesłać wynik z powrotem do bazy danych? – MemoryLeak
@MemoryLeak - więc tutaj jest trochę trudniej; nie tylko chcesz wiedzieć, kiedy zmieni się * kolekcja * (tj. co oznacza INotifyCollectionChanged), chcesz także wiedzieć, kiedy zmieni się którykolwiek z elementów *. Musisz więc zasubskrybować zmianę kolekcji, a następnie dodać/usunąć, subskrybować INOTifyPropertyChanged każdego elementu. * Wtedy * musisz zdecydować, co zapisać na podstawie powiadomień, które otrzymujesz. –