我有一个MVVM(Prism)应用程序,我需要实现母版详细信息屏幕,而母版是 ListView ,并且其旁边会显示详细信息。只读似乎很容易(还没有完成,但是我对WPF绑定(bind)有所了解),但是编辑/添加使我感到困惑。
我如何做到这一点,以便在保存详细信息之前不更新母版?
我如何做到这一点,以使您在编辑/添加模式下无法更改母版的当前选择?
我一直在搜索很多内容,但没有发现任何此类示例。
谢谢。
PS:此 View 是大屏幕上的 subview 。这就是为什么我希望同时掌握细节和细节。
最佳答案
您当然可以做到这一点,尽管我认为这样的UI设计无法充分利用WPF的全部功能。在将数据保存到SQL Server(或任何位置)之前,旧的WinForms UI通常不会更新大多数应用程序,因为它们没有真正的业务对象和功能强大的绑定(bind)系统(如WPF)。尝试在WPF中复制WinForms限制对我来说似乎是向后退了一步。为什么不在用户界面(包括主 View )中可见的位置显示最新数据?此外,为什么不让用户在保存之前编辑多个项目,例如在主 View 中用动画标记标记任何已编辑但未保存的项目?将这些与广义撤消结合起来,您将获得更好的设计和更直观的用户体验。
但是,如果您的业务需求使其绝对必要,请按以下步骤操作:
防止对数据的更改在明细之外可见,直到保存为止
进入“编辑/添加模式”后,创建数据对象的副本,并将详细 View 的DataContext设置为副本,而不是事件对象。数据“保存”后,将数据从卷影副本复制回事件对象,然后将详细信息 View 的DataContext放回原处。
防止在编辑/添加模式下更改主控台的当前选择
两种可能性:
关于c# - 如何在MVVM下的同一屏幕上实现CRUD主详细信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2249751/