目前在我的应用程序中,在点击网格行时,我用网格行条目填充页面的控件。我有一个UPDATE按钮来保存更改。但即使不修改任何控件值并单击“更新”按钮,也将使用相同的值完成更新。触发日志表条目。
如果控件的值与单击网格时加载到控件的值不同,我怎样才能使表单调用更新。
更新: 应用程序不使用任何模式,如MVVM。除了用户界面之外,获得表格的结构非常简洁。对于db交互ADO.net。它是在我加入这个项目时建成的。即使我是wpf的新手。
任何人都可以帮助我吗?
答案 0 :(得分:2)
我认为您需要对网格中显示的实体进行一些更改跟踪。每当执行更新时,您都会检查实体的状态,并仅更新需要它们的实体。基本上,您需要在Property Setters级别进行拦截,以跟踪实体中的更改。想一想:
关于这一点的一些有用的理论可能是:
Change tracking on businees objects
Using Properties C# programming guide
ADO.NET Self Tracking Entities
我不知道你的问题在用户界面和数据库之间的耦合是多么紧密(ADO.NET DataTables左右......)。上面提出的想法需要一些“脱钩”的东西。但是,它是您应用程序中进一步功能的良好基础,可以为您提供一些简单的工作,清晰的框架,改进的维护并可能提高性能。
答案 1 :(得分:0)
我认为最简单的方法是为控件添加一个处理程序,用于获取用户输入,这将设置一些布尔属性,例如。 RowWasEdited,为true。然后在UPDATE按钮单击事件上检查此属性,执行必要的操作,并将其设置为false。
但我确信有比这更优雅的东西。