我创建了两个自定义Android View,它们希望绑定到数据模型中的属性.当我运行应用程序时,属性绝对未绑定,并且在日志中看到诸如MvxBind:Error:106.21找不到视图类型的错误-md5b46e1450448c30667827ca3b24581c6a.NavigationListView.
我最初也遇到了与android.support.v4.widget.DrawerLayout相同的问题,我可以通过将程序集添加到Setup.cs中的AndroidViewAssemblies来解决此问题.我尝试对自定义视图执行相同操作,但无济于事.我的AndroidViewAssemblies看起来像这样:
protected override IList<Assembly> AndroidViewAssemblies
{
get
{
var assemblies = base.AndroidViewAssemblies;
assemblies.Add(typeof(DrawerLayout).Assembly);
assemblies.Add(typeof(NavigationListView).Assembly);
return assemblies;
}
}
我确实注意到,对于DrawerLayout,MvxBind在日志中包括完整的名称空间,但是对于我的自定义视图,它使用的是md5哈希而不是名称空间,我认为这与我看到的问题有关.
这肯定在几天前就可以使用了,但是在恢复到我知道正在使用的代码后,它仍然无法使用.这使我相信我有某种配置问题.
我正在使用Visual Studio2013.自从上次工作以来,我确实安装了StyleCop并将Reshaper更新到8.2版,但是我对那些破坏自定义视图的人表示怀疑.
可能会发生什么,我该如何解决?
解决方法:
正如Stuart所建议的,这是Xamarin 5.1中Xamarin’s breaking changes的一部分.
我必须做两件事来解决此问题:
>我必须将[Register(“ com / example / namespace / CustomViewName”)]添加到我的自定义视图中以解决这些问题.
>我更新到MvvmCross 3.5.1,以修复MvvmCross控件的绑定(例如MvxListView).