MvvmCross Crosslight中的自定义绑定

时间:2014-08-15 13:57:05

标签: mvvmcross

我们正在使用MvvmCross Core的绑定功能实现我们自己的跨平台框架。 我的问题是如何在没有设置的情况下在Mvx中注册自定义绑定。 使用的自定义绑定是类似于的imeActionBinding: https://gist.github.com/slodge/8270923 尝试注册使用:

Mvx.CallbackWhenRegistered<IMvxTargetBindingFactoryRegistry>(RegisterCustomBindings);

protected virtual void RegisterCustomBindings(IMvxTargetBindingFactoryRegistry registry)
    {
        EditTextImeActionBinding.Register(registry);
    }

在LightSetup中使用项目ChimpLight尝试了同样的事情:

  Mvx.RegisterSingleton<IMvxTargetBindingFactoryRegistry>(new MvxTargetBindingFactoryRegistry());
  var customBindingRegistry = Mvx.Resolve<IMvxTargetBindingFactoryRegistry>();
  EditTextImeActionBinding.Register(customBindingRegistry);

XAML:

 <EditText
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:hint="Search"
  android:inputType="text"
  android:imeOptions="actionSearch"      
  local:MvxBind="Text LastName;ImeAction ResetCommand" />

没有例外 - 但似乎自定义绑定永远不会被加载:|

我错过了什么?

1 个答案:

答案 0 :(得分:0)

感谢Stuart的简单回答:使用现有的绑定。 使用N-30 Chimplight示例代码,LightSetup类唯一添加的代码是:

        Mvx.CallbackWhenRegistered<IMvxTargetBindingFactoryRegistry>(registry =>
        {
            EditTextImeActionBinding.Register(registry);
        });