2012-07-04 8 views
14

Moje źródło znajduje się w bazie danych MySQL, zrobiłem polecenie aktualizacji i teraz muszę odświeżyć mój DataGrid.Jak odświeżyć datagrid w WPF

MySqlCommand cmd = new MySqlCommand(
    "update request set status = " + StatusRequest(value) + 
    " where id = " + rowView[0].ToString() + "", conn); 
MySqlDataReader myReader = cmd.ExecuteReader(); 

Jak odświeżyć mój DataGrid?

Odpowiedz

31

Odśwież źródło danych swojej siatki po aktualizacji

myGrid.ItemsSource = null; 
myGrid.ItemsSource = myDataSource; 
+0

o! tak! praca!! –

5

Jak o

mydatagrid.UpdateLayout(); 
+0

Nie przerabiamy, ale jeśli zmienię aktualizację programu, potrzebuję odświeżenia w czasie online –

4

Bind ciebie DataGrid do ObservableCollection i aktualizować swoją kolekcję zamiast.

+0

co z aktualizowanymi produktami? czy obsługuje aktualizacje? – Leonardo

+0

@ Leonardo Do tego potrzebne są twoje obiekty do implementacji interfejsu INotifyPropertyChanged. https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychianum%28v=vs.110%29.aspx –

8

Od MSDN -

CollectionViewSource.GetDefaultView(myGrid.ItemsSource).Refresh(); 
+2

Witamy w Stack Overflow! Chociaż może to odpowiedzieć na pytanie, [byłoby lepiej] (http://meta.stackoverflow.com/q/8259) dołączyć istotne części odpowiedzi tutaj i podać link do odniesienia. –

0

miałem wiele problemów z tym i to pomogło mi uzyskać DataGrid przeładować z nowymi wartościami. Upewnij się, że używasz typu danych, z którego pobierane są dane, aby uzyskać najnowsze wartości danych.

Przedstawiłem to poniżej pod SomeDataType.

DataContext.Refresh(RefreshMode.OverwriteCurrentValues, DataContext.SomeDataType); 

Mam nadzieję, że pomoże to komuś z tymi samymi problemami co ja.