Принять / отменить изменения в Subsonic 2.2 - PullRequest
0 голосов
/ 16 января 2012

У меня есть приложение .NET 2.0 Winforms (и Subsonic 2.2), где у меня есть DataGridView и несколько элементов управления на панели, оба связаны с BindingSource, источником данных которого является коллекция Subsonic ActiveRecord. Когда пользователь выбирает строку в сетке, соответствующая информация отображается на панели ниже в соответствующих элементах управления (texbox, combo, datetimepicker и т. Д.)

Когда пользователь изменяет некоторые данные и пытается перейти к какой-либо другой строке, я хочу, чтобы приложение отображало предупреждение о том, что данные изменились и их необходимо сохранить. Если пользователь выбирает «да», данные должны быть сохранены.

Я сталкиваюсь с несколькими проблемами:

a) В обработчике событий DGV.RowEnter я пытаюсь определить, является ли текущая строка грязной (используя IsDirty из activerecord). Если это так, я отображаю окно сообщения.

b) Когда я сохраняю и перепривязываю сетку, источник данных из сетки данных не может быть повторно привязан к новой (сохраненной) коллекции. Приложение выдает ошибку, что «операция недействительна».

в) Кроме того, поскольку вид сетки и элементы управления привязаны к одной коллекции, всякий раз, когда я что-то изменяю в элементе управления, это отражается в сетке, но когда пользователь выбирает «Нет» для сохранения данных, изменения должны быть отменены. Есть ли у Subonic какие-либо изменения Принять / Отменить как набор данных?

Спасибо!

1 Ответ

0 голосов
/ 19 января 2012

Я наконец понял:

а) Хотя я могу сохранять данные без проблем, приложение выдает ошибку только , когда я пытаюсь «привязать» ее. Поскольку сетка и элементы управления уже связаны с источником данных, который содержит последние изменения, я удалил код перепривязки, и теперь он больше не выдает никакой ошибки («Операция недействительна»

b) Отмена изменений - это было достигнуто путем вызова BindingSource.CancelEdit (), когда пользователь не хочет сохранять изменения.

...