目前在我的应用程序中,单击网格行时,我使用网格行条目填充页面的控件。我有一个UPDATE按钮来保存更改。但即使不修改任何控制值并单击更新按钮,更新也将使用相同的值完成。触发记录表的条目。如何避免表单条目未更改时更新
如何使窗体调用更新仅当控件的值不同于正在加载到他们时,我单击网格。
更新: 应用程序未使用任何模式,如MVVM。除了用户界面之外,所遵循的结构对于赢取表单来说非常不利。用于数据库交互ADO.net。它已经建立,当我加入这个项目&即使我是新来的wpf。
任何人都可以帮我吗?
目前在我的应用程序中,单击网格行时,我使用网格行条目填充页面的控件。我有一个UPDATE按钮来保存更改。但即使不修改任何控制值并单击更新按钮,更新也将使用相同的值完成。触发记录表的条目。如何避免表单条目未更改时更新
如何使窗体调用更新仅当控件的值不同于正在加载到他们时,我单击网格。
更新: 应用程序未使用任何模式,如MVVM。除了用户界面之外,所遵循的结构对于赢取表单来说非常不利。用于数据库交互ADO.net。它已经建立,当我加入这个项目&即使我是新来的wpf。
任何人都可以帮我吗?
我相信最简单的方法是为控件添加一个处理程序,用于获取用户输入,它将设置一些布尔属性e.d. RowWasEdited,为true。然后在UPDATE按钮单击事件上检查此属性,执行必要的操作并将其设置为false。
但我确定有比这更优雅的东西。
您的解决方案将工作,但仍然“闻起来”一点。我认为最好跟踪业务实体本身的变化,而不是在表单上保留一个私有布尔值来检查更新。 –
我认为你需要对网格中显示的实体进行一些更改跟踪。无论何时执行更新,您都会检查实体的状态,并只更新需要的实体。基本上你需要在Property Setters的层面进行拦截,以跟踪实体的变化。想想:
这个有些有益的理论可能是:
Change tracking on businees objects
Using Properties C# programming guide
ADO.NET Self Tracking Entities
我不从你的问题知道的耦合是用户界面之间的紧密和数据库(ADO.NET DataTables左右......)。上面提出的想法需要一些“解耦”的东西。但是,对于您的应用程序中的其他功能来说,它是一个很好的基础,并且可以为您提供一些便利的工作,清晰的框架,改进的维护并可能提高性能
您使用的是MVVM这样的模式吗?请解释你的应用程序的设计。 –
你有GridView绑定的ItemsSource吗? –
我有数据网格的项目源。但我不更新网格中的条目。我加载DEM来分离像文本框,组合框等控制 –