2012-01-12 2 views
0

Я пишу приложение, которое в основном является DataGrid, прикрепленным к таблице базы данных, красиво и просто. Я использую LINQ к SQL и привязка к столу с помощью простого:Связывание с datagrid, инициирование изменений базы данных на стороне клиента

dGridd.ItemsSource = _dbcontext.TheTableObjects;

В таблице успешно показана таблица, однако DataGrid не обновляется, когда я изменить значение базы данных извне (например, из MSSQL) , Я выполнил большинство инструкций здесь: Simple Demo of Binding to a Database in WPF using LINQ-SQL, за исключением пропуска использования ObservableCollection (что не должно быть различий, правильно?).

Я хочу привязку для обновления (и, следовательно, datagrid), когда содержимое таблицы базы данных изменяется извне. Инстинктивно я сказал себе: «Это глупо ... как клиентское приложение может знать содержимое базы данных без какого-либо опроса? ...», но опять же я не знаю, насколько вежливым LINQ to SQL действительно является ...

+0

ваши инстинкты были правильными. Вы должны опрашивать. использовать ObservableCollection Добавление, удаление дельта экземпляров, которые будут автоматически распространяться на DataGrid. –

+0

ли приложение должно делать что-нибудь еще, кроме отображаемых значений? Если вам нужно, чтобы другие кнопки/функции были горячими, вам нужно будет выполнить опрос в фоновом режиме. Если он доступен только для чтения, вы можете пойти с ListView/GridView, поскольку он легче DataGrid Вы могли бы использовать триггер CLR для получения уведомлений http://msdn.microsoft.com/en-us/library/ms131093.aspx. Я сказал, что могу - я не публиковал это как ответ. – Paparazzi

+0

Спасибо за ответ, извините, задайте другой вопрос в вопросе, но: Каков наименьший интерферирующий интерфейс g способ опроса БД и заполнения сетки? На данный момент я просто обновляю 'ObservableQueue' в' DispatcherTimer', каждый раз, когда это срабатывает, я чувствую слабость пользовательского интерфейса. Есть ли лучший способ сделать это с точки зрения реагирования приложений? – user989056

ответ

0

jberger предоставил лучший ответ.

Ваши инстинкты были верны. вы должны опросить. использовать ObservableCollection Добавление, удаление дельта экземпляров, которые будут автоматически распространяться на DataGrid»

Смежные вопросы