【问题标题】:Save changes for one object in WPF [closed]在 WPF 中保存一个对象的更改 [关闭]
【发布时间】:2017-07-17 01:58:57
【问题描述】:

在我的应用程序中,我管理人员信息,我有一个列表框显示人员列表和三个按钮添加/编辑/删除,当我选择行并按下编辑按钮时,应用程序会打开一个包含人员信息的新窗口并保存到某个数据库如果其他用户尝试编辑此人现在正在修改的表 (ModifyCheck)。在此人窗口中,我有两个按钮(保存/取消)。此窗口中的所有控件都与对象属性绑定,当我进行一些修改并按保存时,我应该从 (ModifyCheck) 中删除该行。

问题是:

如果我打开人员窗口并修改一些信息然后按取消,我将使用 SaveChange 更新 ModifyCheck 表。在这种情况下,尽管我按下了取消,但我修改的所有信息都会更新。

如何仅将 SaveChanges() 应用于 ModifyCheck?

【问题讨论】:

    标签: c# wpf dbcontext


    【解决方案1】:

    不要将实体属性直接绑定到控件。创建具有相同属性的视图模型,将它们绑定到控件。当用户进行一些更改时,它将修改 viewModel 的属性,而不是您的实体。如果用户按下保存按钮,您必须更新实体的字段。如果用户按下取消,实体不会发生任何事情。

    为简单起见,假设您有一个 WinForms 应用程序。每个 TextBox 控件都有一个名称。当用户按下保存按钮时,您会将其值分配给实体:

    person.FirstName = textBoxFirstName.Text;
    db.SaveChanges();
    

    否则您将关闭表单,并且不会有任何变化person

    【讨论】:

    • 感谢您的回答,请您详细指导我如何使用视图模型?
    • 如果您不了解 MVVM 模式以及它在 WPF 中的使用方式,则不能只使用 ViewModel。这里是相关主题,MVVP 教程:stackoverflow.com/questions/1405739/…
    • @AbdulsalamElsharif MVVM 在这里可能是太复杂的话题。您只需要了解一件事,在用户按下Save 按钮之前不要修改实体字段。
    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2021-03-20
    相关资源
    最近更新 更多