小编Mar*_*n00的帖子

使用非标准UI与mvvmcross?(像gtksharp这样的数据绑定)

我正在考虑开始使用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?

谢谢.

c# data-binding mvvmcross xamarin

7
推荐指数
1
解决办法
692
查看次数

自定义MvxAdapter - 覆盖方法未被调用

我用自定义适配器创建了一个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)

android custom-adapter mvvmcross xamarin

5
推荐指数
0
解决办法
1726
查看次数

"System.ComponentModel.INotifyPropertyChanged"类型在未引用的程序集中定义

我得到同一文件的以下错误: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)

根据演示,提供了应用程序的所有内容.

我仍然无法摆脱这些问题.

android xamarin.android mvvmcross xamarin

1
推荐指数
1
解决办法
3289
查看次数