C# 处理已删除数据场景的最佳位置是哪里?
我有一个使用MVVM模型的WPF应用程序。此外,我们确实需要使用ShowDialog()在Dialog()中显示一些数据。为此,我们有一个MainWindow调用另一个类中的另一个方法,该方法将实际返回Window类型的对象。然后,主窗口将通过调用ShowDialog()方法显示此窗口。window类具有ViewModel,其中包含对话框中显示的数据 我的问题是如何处理数据库中不存在数据的情况C# 处理已删除数据场景的最佳位置是哪里?,c#,.net,wpf,mvvm,C#,.net,Wpf,Mvvm,我有一个使用MVVM模型的WPF应用程序。此外,我们确实需要使用ShowDialog()在Dialog()中显示一些数据。为此,我们有一个MainWindow调用另一个类中的另一个方法,该方法将实际返回Window类型的对象。然后,主窗口将通过调用ShowDialog()方法显示此窗口。window类具有ViewModel,其中包含对话框中显示的数据 我的问题是如何处理数据库中不存在数据的情况 Window()或ViewModel的构造函数(确切地说是哪一个)是否应该引发异常?如果是,那么什么类
Window()或ViewModel的构造函数(确切地说是哪一个)是否应该引发异常?如果是,那么什么类型的异常?有没有其他方法来处理这种情况?您没有列出用例,因此无法得到最佳答案,因为答案取决于您的用例、域和用户 也就是说,您不太可能希望您的用户看到异常,即使它实际上是异常的。最好是在对话框中显示信息性消息(即“没有要显示的项目”),或者干脆不显示 HTH,
Berryl无论您是否调用ShowDialog,您的用户界面、窗口都不应干扰数据的获取以及数据是否存在于MVVM中。您应该将UI和数据访问逻辑分开。我想只有OP可以决定是否应用上述注释,但如果您确实有一个数据访问层,而该层不返回任何数据,您的UI应该知道这一点,并向用户发出适当的通知,这听起来是可行的。如何处理错误取决于您,但显然,为多个窗口编写相同的错误处理弹出窗口是一种浪费-我想你可以使用某种聚合器,它位于MainWindow VM级别,拦截这些异常情况,并在弹出窗口中显示适当的消息,以更好地显示你的规范,从您显示的信息的来源来看,如果它来自数据库,则没有问题,因为它来自数据库,如果不是,则可能应该添加到数据库中。