这些天我正在使用 .NET 平台的 WPFMVVM 相关功能和工具开发一个新的 c# 项目。我对这种类型的应用程序开发完全陌生。在我开始学习 ICommandINotifyPropertyChanged 之类的东西后,我注意到当我深入研究这些类和命名空间 System.Windows.Input 时,我实际上正在远离可移植性。

在我坚持使用 MVVM 之前,我曾经为我的应用程序的业务层创建一个可移植的类库。

来自 MVVM 的这些 PresentationCore.dll 类是否在 Xamarin android、iOS 和 mac 等其他平台上得到很好的支持?如果我在可移植类库中使用 ICommandCommandManager 和其他类,我是否也可以在其他提到的平台中使用实现的库?

远离便携性是什么意思?

例如,假设我们要开发一个可移植到 windows 和 android 平台的应用程序。当我实现 ICommand 时,我只能使用带有 WPF 控件的命令,尽管我可以轻松地在 xamarin android 应用程序中按钮的单击事件处理程序中调用该方法。所以在这个例子中,ICommand 在 Xamarin android 应用程序中是无用的。

请您指导我在可移植类库中编写 MVVM 时应该考虑什么? MVVMPCL 有什么共同点?当他们的概念和功能座位彼此不安时?

最佳答案

简短回答:可移植性不是 WPF 的主要设计目标之一。来自 the MSDN site :“Windows Presentation Foundation (WPF) 的主要目标是帮助开发人员创建有吸引力且有效的用户界面”。更具体地说,它是为了帮助开发人员为 Windows 创建用户界面,因此是 W。并且鉴于 View 模型和 View 之间松散但隐含的耦合,这意味着可移植性的最佳选择 IMO 是在您的模型中,也可能是在您的 ORM 中.只要您坚持良好的 SOC 实践,这可能是您在不依赖第三方解决方案的情况下获得的最佳实践……这通常会进一步降低可移植性,同时在其他地方增加一大堆麻烦。

关于c# - 可移植类库中的 WPF MVVM 编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32064384/

10-10 16:36