【发布时间】:2017-09-01 17:47:42
【问题描述】:
我正在开发一个我也想在其上运行的 WPF 桌面应用程序 Mac 通过 Xamarin.Mac。我非常注意分离尽可能多的核心 尽可能将代码写入 PCL,并使特定于 WPF 的代码保持精简 尽可能。
UI 架构是 MVVM。我所有的视图模型,实现
INotifyPropertyChanged,在我的核心 PCL 中。 WPF UI 组件
然后可以直接绑定到那些视图模型属性。
我的问题是:如何使用我的“便携” Xamarin.Mac 端的 PCL 视图模型,以便我可以使用 Cocoa 数据绑定?
主要问题似乎是,为了与 Cocoa 交互
数据绑定,视图模型必须继承自NSObject,使用
Register 注解暴露属性,并使用
WillChangeValue/DidChangeValue 通知观察者的方法。一世
看不到为 PCL 中的视图模型执行此操作的方法,主要是
因为如果那些相同的类,我不能让它们从 NSObject 继承
从 WPF 端保持可用。
我想避免使用诸如 MVVMCross 或 MVVMLight 之类的框架,因为它们包含很多我不需要的东西。但是,如果没有其他方法,我愿意使用它们。
【问题讨论】:
标签: c# cocoa xamarin mvvm data-binding