Как можно обновить сетку данных WPF, где ItemSource - это коллекция Linq-SQL, в которой выполняется .Refresh ()? - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть сетка данных, у которой свой ItemsSource привязан к результату запроса linq (.ToList ())

Я могу внести изменения в свойства коллекции, связанной с itemssource, и эти изменения будут отраженынепосредственно в полях сетки данных, таких как;

myQueryList[2].myProperty = newValue

Что я не могу сделать, так это увидеть изменения, внесенные в базу данных, отраженные этим в сетке данных;

myQueryList.Refresh(RefreshMode.OverwriteCurrentValues, myQueryList[2])

Я проверил значение myQueryList [2] .myProperty после этого обновления, и оно показывает, что оно правильно обновлено из базы данных.Почему сетка данных не отображает его, и как я могу получить сетку данных для его отображения?

Также;Я нашел ту же проблему с использованием ObservableCollection

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Благодаря ответу Кейси (отредактировано) в этом сообщении, я нашел обходной путь

Я реализовал SendPropertiesChanged () для членов коллекции и вызываю его всякий раз, когда делаю Refresh ()

0 голосов
/ 02 декабря 2010

После преобразования query (отложенный / динамический) в collection (фиксированный) с использованием метода ToList() создается отдельная коллекция. Эта новая коллекция не имеет связи с запросом. Когда что-то изменяется в запросе, это не отражается на коллекции. Вам нужно будет сбросить свойство ItemsSource всякий раз, когда вы вызываете Refresh() по запросу.

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