我正在尝试将CheckedChange从monodroid CheckBox绑定到命令,但是我收到错误。
我想在选中某个项目时取消选择其他项目。
我认为可以在wp7中使用EventTrigger,但是MvvmCross for android似乎不支持此功能。
MvvmCross仅限于Button吗?
提前感谢您的帮助。
答案 0 :(得分:3)
CheckedChanged
是EventHandler<CompoundButton.CheckedChangeEventArgs>
因此它不是MvvmCross自动知道的委托类型之一。
但是,有一个自定义绑定...
此自定义绑定应使用以下方式注册:
registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(MvxCompoundButtonCheckedTargetBinding), typeof(CompoundButton), "Checked"));
https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Binding.Droid/MvxAndroidBindingBuilder.cs 中的
因此,如果您的ViewModel具有属性IsSpecial
private bool _isSpecial;
public bool IsSpecial
{
get { return _isSpecial; }
set
{
_isSpecial = value;
RaisePropertyChanged(() => IsSpecial);
// your custom code here
}
}
然后这个绑定应该有效:
'Checked':{'Path':'IsSpecial'}
这适用于任何CompoundButton - CheckBox,Switch或您自己的化合物......