我对WPF还不太熟悉,所以这个问题可能显而易见或者不一致。
有一个需求是从子模态窗口编辑应用程序的某些基础业务数据,并且仅在用户按下该窗口上的“确定”按钮时更新数据。我们称此窗口为SettingsDialog。
在这种情况下,是否仍然合理使用WPF数据绑定将SettingsDialog的控件绑定到业务数据?(如果是这样,如何仅在用户按下SettingsDialog的“确定”按钮时更新业务数据?)
还是最好在SettingsDialog显示时手动从业务数据中分配SettingsDialog的控件值,然后仅在用户按下“确定”按钮时将它们分配回去?
正确选择的论据是什么(代码更小或更清晰、性能、可扩展性)?
是否有类似情况的公认的设计模式?
编辑:我选择了Bubblewrap的答案,因为它最符合我的具体情况。尽管Guard和John的答案也似乎可行。
总结一下:使用数据绑定有一些优点。它使SettingsDialog无需了解业务对象的内部连接和依赖关系(如果有),允许轻松地从模态切换到非模态模式,减少了GUI和业务数据之间的依赖关系。
要在单击“确定”按钮时实现对象更改,可以使用对象克隆/分配,或者对象可以实现IEditableObject接口。
在某些微不足道的情况下,使用数据绑定可能会有一些不必要的开销。