【发布时间】:2023-04-08 19:45:01
【问题描述】:
我有一个非常简单的窗体,用户可以使用它来管理“商店”。
每个商店都有名称和编号,并保存在相应的数据库表中。
表单有一个商店列表框、一个创建新商店的添加按钮、一个删除按钮和一个编辑按钮。
除此之外,我还有姓名和号码的文本框,以及保存/取消按钮。
当用户从列表框中选择一个商店并单击“编辑”时,文本框将被填充并且保存/取消激活。当用户单击“添加”时,我创建一个新的商店,将其添加到列表框,激活文本框和保存/取消按钮,然后在用户单击“保存”时将其提交到数据库,或者在用户单击时丢弃它'取消'。
现在,我的事件系统看起来像这样(在伪代码中。这样更短。)
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不是很有经验,所以我不确定我是否有正确的想法来解决这个问题。
有没有更好的方法来做到这一点?我想让它保持简单但可用。
【问题讨论】: