无法绑定自定义 MvvmCross 视图
Unable to bind custom MvvmCross Views
我创建了两个自定义 Android 视图,我想将它们绑定到我的数据模型中的属性。当我 运行 应用程序时,属性绝对没有绑定,我在日志中看到诸如 MvxBind:Error:106.21 View type not found - 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 Studio 2013。我确实安装了 StyleCop 并将 Reshaper 更新到 8.2 版,因为这最后一次有效,但我怀疑那些破坏我的自定义视图的人。
可能发生了什么,我该如何解决?
正如 Stuart 所建议的,这是 Xamarin 5.1 中 Xamarin's breaking changes 的一部分。
我必须做两件事来解决这个问题:
- 我必须将
[Register("com/example/namespace/CustomViewName")]
添加到我的自定义视图中才能解决这些问题。
- 我更新到 MvvmCross 3.5.1 以修复 MvvmCross 控件的绑定(例如
MvxListView
)。
我创建了两个自定义 Android 视图,我想将它们绑定到我的数据模型中的属性。当我 运行 应用程序时,属性绝对没有绑定,我在日志中看到诸如 MvxBind:Error:106.21 View type not found - 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 Studio 2013。我确实安装了 StyleCop 并将 Reshaper 更新到 8.2 版,因为这最后一次有效,但我怀疑那些破坏我的自定义视图的人。
可能发生了什么,我该如何解决?
正如 Stuart 所建议的,这是 Xamarin 5.1 中 Xamarin's breaking changes 的一部分。
我必须做两件事来解决这个问题:
- 我必须将
[Register("com/example/namespace/CustomViewName")]
添加到我的自定义视图中才能解决这些问题。 - 我更新到 MvvmCross 3.5.1 以修复 MvvmCross 控件的绑定(例如
MvxListView
)。