#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 );
}
}
}