我正在考虑开始使用C#app开发.我有基于Web的技术经验,但我刚开始使用桌面/ MVVM.
我一直在观察和阅读各种mvvmcross教程,我真的很期待使用该框架开发应用程序,但我只是有一个简单的问题,可能与数据绑定有关,而不是mvvmcross本身:
如果我通过mvvmcross库构建我的application.core,那么重用该核心库来开发非mvvmcross目标的UI会相对容易吗?
我知道mvvmcross简化了大量的显示逻辑,所以通过这样做,我必须编写代码来使用他们的方法与其他guis连接,但我想知道是否有人可以发表评论
a)是否可能
和
b)如果在我的mvvmcross核心实现中没有大量的变通方法/黑客攻击是可能的.
我的用例是我计划首先使用mvvmcross为WPF或WinStore开发,然后,如果有需求,添加一个Mac UI.但最终,如果需求存在,我希望能够将我的应用程序移植到Linux(可能通过gtksharp,因为它听起来就像现在开发中最远的那样).我的application.gtk项目是否能够轻松调用/使用mvvmcross核心应用程序中定义的类,方法和函数,或者是否必须重新编写逻辑以便以更适合的方式处理数据gtksharp?
谢谢.
我用自定义适配器创建了一个MvxListView,但没有调用任何适配器方法.值得一提的是列表是一个片段.我究竟做错了什么?
适配器:
public class WishlistAdapter : MvxAdapter
{
public WishlistAdapter(Context context, IMvxAndroidBindingContext bindingContext)
: base(context, bindingContext)
{
}
protected override View GetBindableView(View convertView, object source, int templateId)
{
if (((Wish)source).IsOwner == false)
{
if (((Wish)source).IsBought)
{
templateId = Resource.Layout.listitem_wishbought;
}
}
return base.GetBindableView(convertView, source, templateId);
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
var view = this.BindingInflate(Resource.Layout.WishlistView, null);
var list = view.FindViewById<ListView>(Resource.Id.WishlistView_ListWishes);
list.Adapter = new WishlistAdapter(Activity, (MvxAndroidBindingContext)BindingContext);
return view;
}
Run Code Online (Sandbox Code Playgroud)
视图模型:
public …Run Code Online (Sandbox Code Playgroud) 我得到同一文件的以下错误:LocationToLatLngValueConverter.cs
参考:https: //github.com/MvvmCross/NPlus1DaysOfMvvmCross/tree/master/N-41-Maps
The type `System.ComponentModel.INotifyPropertyChanged` is defined in an assembly that is not referenced. You must add a reference to assembly `System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`.
`D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
`Map.Droid.Views.LocationToLatLngValueConverter.Convert(Map.Core.ViewModels.Location, System.Type, object, System.Globalization.CultureInfo)': no suitable method found to override`
`D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
`Map.Droid.Views.LocationToLatLngValueConverter.ConvertBack(Android.Gms.Maps.Model.LatLng, System.Type, object, System.Globalization.CultureInfo)': no suitable method found to override D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
Run Code Online (Sandbox Code Playgroud)
根据演示,提供了应用程序的所有内容.
我仍然无法摆脱这些问题.