У меня есть ОЧЕНЬ простая форма окон, которую пользователь использует для управления "магазинами".
Каждый магазин имеет имя и номер и хранится в соответствующей таблице БД.
Форма имеет список магазинов, кнопку добавления, которая создает новый магазин, кнопку удаления и кнопку редактирования.
Кроме тех, у меня есть текстовые поля для имени и номера, а также кнопки сохранения / отмены.
Когда пользователь выбирает магазин из списка и нажимает кнопку «Редактировать», текстовые поля заполняются и активируются сохранение / отмена. Когда пользователь нажимает «добавить», я создаю новый магазин, добавляю его в список, активирую текстовые поля и кнопки сохранения / отмены, затем фиксирую его в базе данных, когда пользователь нажимает «сохранить», или удаляет его, когда пользователь щелкает. 'отмена'.
Прямо сейчас моя система событий выглядит следующим образом (в псевдо-коде. Так короче.)
add->click:
store = new Store()
listbox.add(store)
populateAndEdit(store)
delete->click:
store = listbox.selectedItem
db.deleteOnSubmit(store)
listbox.remove(store)
db.submit()
edit->click:
populateAndEdit(listbox.selectedItem)
save->click:
parseAndSave(listbox.selectedItem)
db.submit()
disableTexts()
cancel->click:
disableTexts()
Проблема в том, как определить, вставляем ли мы новый Магазин или обновляем существующий.
Очевидным решением для меня было бы сделать его «модальным» процессом - то есть, когда я нажимаю кнопку «Изменить», я перехожу в режим редактирования, и кнопка «Сохранить» работает иначе, чем если бы я был в режиме добавления.
Я знаю, что мог бы сделать это более похожим на MVC, но я не думаю, что эта простая форма заслуживает дополнительной сложности. Я не очень опытен с winforms, поэтому я не уверен, что у меня есть правильная идея, как справиться с этим.
Есть ли лучший способ сделать это? Я хотел бы сделать это простым, но пригодным для использования.