我已根据https://github.com/hlogmans/MvvmCross.DeapExtensions/创建了一个可绑定版本的ExpandableListView,并将其放入我的应用程序中。我想在axml中添加一个可以绑定的GroupTemplate,它类似于MvxListView的ItemTemplate。
我是否需要继承MvxAndroidBindingResource?我也对MvxBindingAttributes如何适应感到困惑。
答案 0 :(得分:0)
最简单的方法可能是让您了解MvxListView
和MvxAdapter
的工作原理。
MvxBindingAttributes
(https://github.com/MvvmCross/MvvmCross/blob/v3.1/nuspec/DroidContent/MvxBindingAttributes.xml)允许MvvmCross将新的xml标记添加到axml
个文件中。
MvxAndroidBindingResource
类(https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Binding.Droid/ResourceHelpers/MvxAndroidBindingResource.cs)是用于解析MvxBindingAttributes
中定义的属性标记值的C#代码。
MvxListView
的实际操作
public MvxListView(Context context, IAttributeSet attrs, IMvxAdapter adapter)
: base(context, attrs)
{
// Note: Any calling derived class passing a null adapter is responsible for setting
// it's own itemTemplateId
if (adapter == null)
return;
var itemTemplateId = MvxAttributeHelpers.ReadListItemTemplateId(context, attrs);
adapter.ItemTemplateId = itemTemplateId;
Adapter = adapter;
}
特别是,行:
var itemTemplateId = MvxAttributeHelpers.ReadListItemTemplateId(context, attrs);
这使用MvxAndroidBindingResource
中解析的id值来读取local:MvxItemTemplate