Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 视图模型,要在其中实现INotifyPropertyChanged的模型_C#_Wpf_Mvvm - Fatal编程技术网

C# 视图模型,要在其中实现INotifyPropertyChanged的模型

C# 视图模型,要在其中实现INotifyPropertyChanged的模型,c#,wpf,mvvm,C#,Wpf,Mvvm,这是上文提到的问题的继续。现在的问题是 我有一个wpf UI,我正在使用MVVM模式来完成所有的事情,其中 在第一页中,我应该能够配置教师(添加/删除/更新)。教师类中的属性可能是Name和Id 在第二页中,我应该能够配置学生并为学生选择一名教师 在第三页中,我应该能够为学生配置主题 在第四页中,我应该能够为每个学生及其科目配置学习伙伴 因此,如果您看到第二页,则取决于第一页中完成的配置,因为教师信息基于第一页 第三个页面依赖于第二个页面,因为只有在第二个页面中创建了一个学生列表后,我们才能在第

这是上文提到的问题的继续。现在的问题是

我有一个wpf UI,我正在使用MVVM模式来完成所有的事情,其中

  • 在第一页中,我应该能够配置教师(添加/删除/更新)。教师类中的属性可能是Name和Id

  • 在第二页中,我应该能够配置学生并为学生选择一名教师

  • 在第三页中,我应该能够为学生配置主题

  • 在第四页中,我应该能够为每个学生及其科目配置学习伙伴

  • 因此,如果您看到第二页,则取决于第一页中完成的配置,因为教师信息基于第一页

    第三个页面依赖于第二个页面,因为只有在第二个页面中创建了一个学生列表后,我们才能在第三个页面中分配主题。(此处主题列表是静态的,无需配置此。)

    第四页取决于第二页和第三页,因为在第二页中配置了学生信息(因为学习伙伴本身就是inturn学生),在第三页中配置了学生的科目信息

    我的模型定义并将此学生、教师、主题、StudyPartners信息返回到视图模型。所有这些类(业务对象)是否都应该实现INotifyPropertyChanged接口?因为我相信特定于UI的东西应该只在viewmodel中可用,而不在model中可用。如果这种情况下,如何处理更改通知wii,我们是否需要为视图模型中的所有这些类创建一个包装器,并实现此属性更改通知?如果我们这样做的话,如果业务对象的数量增加,它会不会成为视图模型中太多的包装器?如何解决这个问题?我有没有在设计层面上犯过错误,或者所有这些事情都应该在UI层面上加以考虑


    非常感谢您提供的任何帮助。我一直在模型上实现它

    • 当使用数据库后端或文件系统后端时,我通常在较低级别上使用另一个模型。因此,视图上使用的模型仅用于显示数据
    • INotifyPropertyChanged
      界面并不完全限于用户界面。你可以用它做很多事情。WPF只是简单地使用它,但您也可以在较低的级别(如数据库或文件系统)上使用它

    一个类似于前一段时间提出的问题:正如你所看到的,也有很多不同的观点。

    我一直在模型上实现它

    • 当使用数据库后端或文件系统后端时,我通常在较低级别上使用另一个模型。因此,视图上使用的模型仅用于显示数据
    • INotifyPropertyChanged
      界面并不完全限于用户界面。你可以用它做很多事情。WPF只是简单地使用它,但您也可以在较低的级别(如数据库或文件系统)上使用它

    一个与前段时间提出的问题类似的问题:正如你所看到的,也有很多不同的观点。

    可能重复的可能重复的可能重复的我可以理解,这个问题的答案是非常主观的。我想可能是因为我的情况,可能有一些具体的原因说在哪里实施财产通知。无论如何,非常感谢你提供的信息。我能理解这个话题的答案是非常主观的。我想可能是因为我的情况,可能有一些具体的原因说在哪里实施财产通知。无论如何,非常感谢你提供的信息。