C# 在什么特定条件下,在MVVM中为视图使用代码隐藏逻辑是可以的?

C# 在什么特定条件下,在MVVM中为视图使用代码隐藏逻辑是可以的?,c#,wpf,design-patterns,mvvm,C#,Wpf,Design Patterns,Mvvm,我正在阅读MVVM,但我仍然不能完全确定以下内容 什么时候可以在视图中使用代码隐藏文件 如果不使用Prism,还会有像样的MVVM应用程序吗 什么时候是考虑棱镜的合适时机 哪个MVVM框架是用户友好且学习曲线平滑的 如果您不能取出代码的视图部分并用另一个视图替换它(例如用GTK#或WinForms替换WPF),那么设计就是有缺陷的 Prism面向WPF,并不完全是MVVM。使用MVVM时,如果围绕一个表示库设计应用程序,则有创建反模式的危险。MVVM非常适合使用C#构建跨平台应用程序,而不仅仅是

我正在阅读MVVM,但我仍然不能完全确定以下内容

  • 什么时候可以在视图中使用代码隐藏文件
  • 如果不使用Prism,还会有像样的MVVM应用程序吗
  • 什么时候是考虑棱镜的合适时机
  • 哪个MVVM框架是用户友好且学习曲线平滑的

  • 如果您不能取出代码的视图部分并用另一个视图替换它(例如用GTK#或WinForms替换WPF),那么设计就是有缺陷的

    Prism面向WPF,并不完全是MVVM。使用MVVM时,如果围绕一个表示库设计应用程序,则有创建反模式的危险。MVVM非常适合使用C#构建跨平台应用程序,而不仅仅是Windows应用程序。这包括适用于Windows/Linux/Mac的GTK、适用于iOS的Cocoa Touch、适用于Android的AXML等。甚至还有Qt库,但我认为它不再得到很好的支持。您甚至可以使用C#为Mac编写本机UI应用程序

    很多人都在使用MvvmCross,但我之所以避免使用它,有几个原因。底线是良好的设计可以让你在没有重型MVVM框架的情况下生存,因此在不了解框架如何工作的情况下,不要过分依赖任何框架

    回答#4。我发现棱镜又重又乱。在我的机会中,最好的(也是最容易掌握的)是mvvm灯光。代码模板非常好,没有它我不会启动任何wpf


    我曾处理过一些设计,这些设计的视觉效果非常复杂,但视图中有代码隐藏,视图可以切换到不同的视图,比如3D场景等。我想说,这是一个MVVM仍然可以工作的地方,但代码隐藏更有意义,因为视图逻辑本身很复杂。您是否认为这可能是一个很好的例子,说明仍然遵循您所阐述的原则,但说明了哪里需要代码隐藏?