对简单Windows窗体的建议

Aus*_*yde 0 c# winforms

我有一个非常简单的窗体,用户用来管理"商店".

每个商店都有一个名称和编号,并保存在相应的数据库表中.

表单有一个商店列表框,一个创建新商店的添加按钮,一个删除按钮和一个编辑按钮.

除了那些我有文字框的名称和数字,以及保存/取消按钮.

当用户从列表框中选择商店并单击"编辑"时,文本框将变为填充状态,保存/取消将变为活动状态.当用户点击"添加"时,我创建一个新的商店,将其添加到列表框,激活文本框和保存/取消按钮,然后在用户点击"保存"时将其提交到数据库,或者在用户点击时将其丢弃'取消'.

现在,我的事件系统看起来像这样(在psuedo-code中.它只是那么短.)

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()
Run Code Online (Sandbox Code Playgroud)

问题在于我如何确定我们是在插入新商店还是更新现有商店.

对我来说显而易见的解决方案是使其成为一个"模态"过程 - 也就是说,当我单击编辑时,我进入编辑模式,并且保存按钮的工作方式与我处于添加模式时不同.

我知道我可以使它更像MVC,但我并不认为这种简单的形式值得增加复杂性.我对winforms不是很有经验,所以我不确定我是否有正确的想法来解决这个问题.

有一个更好的方法吗?我想保持简单,但可用.

Ed *_* S. 6

使用某种类型的标识符,即商店的名称.现在,当用户按下"保存"时,请检查您的商店集合是否已包含具有相同名称的商店.如果是的话,它是一个更新,否则它是一个新的商店.

我意识到你可能无法使用商店的名称(即有许多分店的超市),但你明白了.