Mam datagrid, który wyświetla tabela, która jest powiązany z SQL Server DB. Chciałbym ustawić zegar na każde 60 sekund, który sprawdza każdą aktualizację, a następnie wyświetla najnowsze zaktualizowane dane.WPF Datagrid - automatyczne odświeżanie
tej pory stworzyliśmy event_handler dla DataGrid, który zawiera timer obiekt dyspozytora
private void dataGrid1_loaded(object sender, RoutedEventArgs e)
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 60);
dispatcherTimer.Start();
}
Teraz nie wiem jak dalej postępować z obsługi zdarzeń do obsługi nowo aktualizowane dane z bazy danych .
dispatcherTimer_Tick
Oto moja instrukcja wyboru, która służy do wypełnienia datagridu.
private void Page_Loaded(object sender, RoutedEventArgs e)
{
try
{
String selectstatement = "select top 2 ItemID, ItemName,ConsumerName, Street, DOJ from ConsumarTB order by ItemID ";
da = new SqlDataAdapter(selectstatement, con);
ds = new DataSet();
da.Fill(ds);
dataGrid1.ItemsSource = ds.Tables[0].DefaultView;
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
}
ładna ilustracja dla początkujących. Dziękuję Ci. pozwól mi spróbować i wrócić do ciebie. – user1221765
będzie dobrym pomysłem do osiągnięcia tego poprzez wdrożenie INotifyPropertyChanged? – user1221765
Byłaby to świetna okazja, aby zajrzeć do 'ObservableCollection', a także 'INotifyPropertyChanged'. Jeśli utworzysz klasę niestandardową i powiążesz swoją siatkę z 'ObservableCollection ', nie powinieneś ponownie powiązywać swoich aktualizacji. Sugeruję, że robisz to tylko dla korzyści edukacyjnych wpf. :) –
Khan