我正在开发一款 WPF 桌面应用程序,同时也希望通过 Xamarin.Mac 在 Mac 上运行。我已经很注意将尽可能多的核心代码分离到一个 PCL 中,并且尽可能保持 WPF 特定的代码最少。
UI 架构采用 MVVM 模式。所有实现 INotifyPropertyChanged 接口的 ViewModels 都在我的核心 PCL 中。WPF UI 组件可以直接绑定这些 ViewModel 属性。
我的问题是:如何在 Xamarin.Mac 端使用我的“可移植”PCL ViewModel,以便我可以使用 Cocoa 数据绑定?
主要问题似乎是为了与 Cocoa 数据绑定交互,ViewModel 必须继承 NSObject 类、使用 Register 注释公开属性,并使用 WillChangeValue / DidChangeValue 方法通知观察者。我不知道如何为 PCL 中的 ViewModel 执行此操作,主要是因为如果这些相同的类要在 WPF 端使用,则不能继承 NSObject。
我想避免使用 MVVMCross 或 MVVMLight 等框架,因为它们包含了我不需要的许多内容。但是,如果没有其他办法,我愿意使用它们。
UI 架构采用 MVVM 模式。所有实现 INotifyPropertyChanged 接口的 ViewModels 都在我的核心 PCL 中。WPF UI 组件可以直接绑定这些 ViewModel 属性。
我的问题是:如何在 Xamarin.Mac 端使用我的“可移植”PCL ViewModel,以便我可以使用 Cocoa 数据绑定?
主要问题似乎是为了与 Cocoa 数据绑定交互,ViewModel 必须继承 NSObject 类、使用 Register 注释公开属性,并使用 WillChangeValue / DidChangeValue 方法通知观察者。我不知道如何为 PCL 中的 ViewModel 执行此操作,主要是因为如果这些相同的类要在 WPF 端使用,则不能继承 NSObject。
我想避免使用 MVVMCross 或 MVVMLight 等框架,因为它们包含了我不需要的许多内容。但是,如果没有其他办法,我愿意使用它们。