Listview ItemsSource - Сложный - - PullRequest
       1

Listview ItemsSource - Сложный -

0 голосов
/ 15 ноября 2010

Я создаю приложение WPF с использованием C # в VS2010.

У меня есть база данных - давайте назовем ее mydatabase.mdf - и я правильно подключил ее к своему проекту и построил DataContext.

Теперь у меня есть ListView в моем пользовательском интерфейсе, который показывает элементы из определенной таблицы в этой базе данных, но проблема в том, что каждый раз, когда новый элемент добавляется в мою базу данных, я хочу, чтобы ListView обновлял свои элементы .

Я уже пробовал:

listView.items.refresh()

но это не сработало.

И я попробовал что-то, а именно, применять запрос к этой таблице базы данных каждый раз, когда добавляется новый элемент, и этот запрос удаляет все элементы; тогда я делаю:

listview.itemssource = myquery

но это тоже не сработало.

пожалуйста, помогите мне, пожалуйстаeeeeeeeeeeeeeeee

1 Ответ

1 голос
/ 15 ноября 2010

База данных не может уведомить клиента при добавлении нового элемента.

Когда ваш клиент добавляет элемент в базу данных, ObservableCollection решит вашу проблему.Он реализует INotifyCollectionChanged и уведомляет пользовательский интерфейс об изменениях, внесенных в коллекцию (на клиенте).

Когда другие клиенты также пишут в базу данных, ваш единственный шанс - периодически опрашивать базу данных (запрашивать базу данных) ипримените дельту (изменения) к вашей ObservableCollection вручную, или полностью перепривязайте источник данных (сортировки и т. д. могут быть потеряны), или обновите ItemsCollection, если вы не используете ObservableCollection или что-то, реализующее INotifyCollectionChanged.

В зависимости от вашей архитектуры, Remoting-Service может опросить базу данных для всех клиентов и затем уведомить их всех.Это может быть полезно, если опрос создает узкое место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...