2010-10-23 2 views
0

есть ли коллекция, которая отслеживает изменения, внесенные в коллекцию? скажите, какой объект удален/изменен/добавлен?коллекции, отслеживающие изменения?

В ObservableCollection просто указывается уведомление, оно не будет удалено, если вы скажете свойство RemovedItems. Я должен их где-то держать. на самом деле, почему я задаю вопрос, связан ли я с привязкой коллекции к datagrid, кажется, мне нужно выполнить отслеживание изменений самостоятельно, я хочу, чтобы коллекция собиралась сделать это, чтобы я знал, как обновлять базу данных с помощью коллекции.

В DataTable отслеживаются изменения, но работать с ними не так просто.

ответ

2

Пробег: ObservableCollection. От эталонного текста:

Представляет динамический сбор данных, который обеспечивает уведомления, когда элементы получить добавлены, удалены, или когда весь список обновляется.

EDIT. Вы также можете попытаться решить свою проблему с помощью наборов данных (т. Е. Класса DataSet и связанных с ним). Они могут выполнять управление версиями строк и отслеживать изменения состояния строки (новые, отредактированные, удаленные), поэтому они могут работать для вас. Это хорошее введение в тему: http://msdn.microsoft.com/en-us/library/ww3k31w0.aspx

+0

Он просто дает уведомления, он не сохранит удаленный текст в качестве свойства RemovedItems. Я должен их где-то держать. на самом деле, почему я задаю вопрос, связан ли я с привязкой коллекции к datagrid, кажется, мне нужно выполнить отслеживание изменений самостоятельно, я хочу, чтобы коллекция собиралась сделать это, чтобы я знал, как обновлять базу данных с помощью коллекции. Благодарю. – Benny

+0

@Benny: Предлагаю вам обновить свой вопрос с помощью этого разъяснения на благо всех. В любом случае класс, который я предлагаю, может служить вам хорошо: вам нужно только слушать события и сохранять элементы, которые меняют сами. В предоставляемых библиотеках нет коллекции, которая отслеживает вас. На всякий случай, когда вы чувствуете себя авантюристами, я добавляю редактирование своего ответа. – CesarGon

+0

Спасибо. Отредактировал мой вопрос. +1 для вас. – Benny

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