C# 使用非标准UI';是mvvmcross吗?(gtksharp之类的数据绑定)

C# 使用非标准UI';是mvvmcross吗?(gtksharp之类的数据绑定),c#,data-binding,xamarin,mvvmcross,C#,Data Binding,Xamarin,Mvvmcross,我正在研究如何开始C#应用程序开发。我有网络技术方面的经验,但我刚刚开始使用桌面/MVVM 我一直在观看和阅读各种mvvmcross教程,我非常期待使用该框架开发应用程序,但我有一个简单的问题,可能与数据绑定有关,而不是mvvmcross本身: 如果我通过mvvmcross库构建application.core,那么重用该核心库为非mvvmcross目标开发UI是否相对容易? 我知道mvvmcross简化了很多显示逻辑,所以通过这样做,我必须编写代码来使用其他GUI的方法连接它们,但我想知道是否

我正在研究如何开始C#应用程序开发。我有网络技术方面的经验,但我刚刚开始使用桌面/MVVM

我一直在观看和阅读各种mvvmcross教程,我非常期待使用该框架开发应用程序,但我有一个简单的问题,可能与数据绑定有关,而不是mvvmcross本身:

如果我通过mvvmcross库构建application.core,那么重用该核心库为非mvvmcross目标开发UI是否相对容易?

我知道mvvmcross简化了很多显示逻辑,所以通过这样做,我必须编写代码来使用其他GUI的方法连接它们,但我想知道是否有人可以对此发表评论

a) 是否可能

b) 如果我的mvvmcross-core实现没有太多的变通方法/黑客攻击,这是可能的

我的用例是,我计划首先使用mvvmcross为WPF或WinStore开发,然后,如果有需求,添加一个Mac UI。但最终,如果有需求的话,我希望能够将我的应用程序移植到Linux(可能是通过gtksharp,因为听起来这是目前开发中最先进的)。我的application.gtk项目是否能够轻松调用/使用mvvmcross-core应用程序中定义的类、方法和函数,或者必须重新编写该逻辑,以更适合gtksharp的方式处理数据


谢谢。

通常,当使用MvvmCross(但实际上是任何使用开发风格的Mvvm模式)开发core时,core不应该依赖于任何UI逻辑,因此应该可以在任何平台上重用。但是,目前MvvmCross中没有对gtk的平台支持

我对gtk不是很熟悉,但我认为可以用与Android和iOS类似的方式为linux构建绑定层


因此,理论上,您应该能够使用Mono在Linux上重用核心库,因为Linux的绑定层是为MvvmCross开发的。如果这真的可行,我很想看到有人开始到处闲逛。

很抱歉回复太迟,但我真的认为这不太可行,至少如上所述。在我看来,主要的问题是MvvmCross可能仍然是大多数核心库的依赖项。您当然可以拥有一个核心库,将其作为依赖项,而不是真正使用它,但这似乎是一种浪费,有点违背了所提出的问题


如果没有它作为一个依赖项,你会失去很多东西,实际上是所有使它成为如此好的框架的东西。您真正想要做的是实现INotifyPropertyChanged并完成它。您还可以使用其他一些更简单的库,包括Praeclarum()、Fody.PropertyChanged()、Json.NET和SqLite.NET中的Bind库,以实现一个基本但功能强大的核心库,然后可以将其添加到基于MvvmCross的库中,但我不知道是否有任何理由这样做。另一个有用的链接是:。

如果你还有什么发现,我会很感兴趣,我只是在研究一个类似的项目。不,在这个问题之后,我真的没有取得任何进展。生活变得忙碌,所以这个项目不幸地被放弃了。祝你工作顺利。我真的很想看看这个,因为这样可以将Mac和Linux添加到平台列表中,这意味着可以覆盖几乎所有的操作系统。也许使用MvvmLight会更容易。我想最复杂的部分是在将事件绑定到视图属性时移植依赖于平台的代码。(我希望)剩下的是可移植代码。