Как автоматически обновить несколько вкладок в одной сетке данных

#c# #sql #wpf #datagrid #tabs

#c# #sql #wpf #datagrid #вкладки

Вопрос:

Итак, у меня есть приложение, в котором есть несколько вкладок, которые используют одну сетку данных. Я пытаюсь выяснить, как заставить datagrid автоматически обновляться каждый час. На каждой вкладке отображаются результаты запроса от sql server. Все вкладки необходимо будет обновлять каждый час, а также после добавления нового элемента в базу данных. Дайте мне знать, если вам понадобится дополнительная информация.

Ответ №1:

Если вы используете WPF, просто привяжите сетку данных к общему источнику данных (ObservableCollection). Время от времени обновляйте свою коллекцию, и сетка данных будет обновляться автоматически.

XAML:

 <DataGrid x:Name="DataGrid1" ItemsSource={Binding Path=SharedCollection, Mode=OneWay} .../>
<DataGrid x:Name="DataGrid2" ItemsSource={Binding Path=SharedCollection, Mode=OneWay} .../>
<DataGrid x:Name="DataGrid3" ItemsSource={Binding Path=SharedCollection, Mode=OneWay} .../>
  

Код, лежащий в основе:

 public class View : Window
{
    public View()
    {
        this.DataContext = new ViewModel();
    }
}
  

Просмотр модели:

 public class ViewModel : INotifyPropertyChanged
{
   public ObservableCollection<MyType> SharedCollection = new ObservableCollection<MyType>();
   ...
   ...
   public void UpdateData()
   {
       SharedCollection.Clear();
       var data = GetMyDataFromSQLQuery();
       foreach( var item in data )
       {
           SharedCollection.Add( item );
       }
   }
}