Android 本地:MvxBind活页夹列表

Android 本地:MvxBind活页夹列表,android,mvvmcross,Android,Mvvmcross,我找不到可供使用的所有类型的活页夹的列表,最近有一个关于local:MvxBind=“Visibility Property”的集合,这对我们的代码有很大帮助。我相信MvvMCross有很多我们还不知道的隐藏宝石。在什么地方可以找到这些信息吗 我们知道的活页夹: 本地:MvxBind=“文本属性” 本地:MvxBind=“ItemsSource属性;SelectedItem属性” 本地:MvxBind=“单击ICommandProperty” 本地:MvxBind=“ItemsSource属性

我找不到可供使用的所有类型的活页夹的列表,最近有一个关于local:MvxBind=“Visibility Property”的集合,这对我们的代码有很大帮助。我相信MvvMCross有很多我们还不知道的隐藏宝石。在什么地方可以找到这些信息吗

我们知道的活页夹:

  • 本地:MvxBind=“文本属性”
  • 本地:MvxBind=“ItemsSource属性;SelectedItem属性”
  • 本地:MvxBind=“单击ICommandProperty”
  • 本地:MvxBind=“ItemsSource属性;ItemClick ICommandProperty”
  • 本地:MvxBind=“可见性属性”
谢谢

自动属性绑定 MvvmCross绑定到本机视图上的C#属性,因此Xamarin.Android公开的任何公共C#get/set属性都可以单向绑定到

此外,如果属性
Foo
伴随着签名事件
public event EventHandler FooChanged
,则MvvmCross可以双向绑定到该属性


自动事件绑定 MvvmCross还绑定到本机视图公开的任何
public
C#
event
s,只要它们具有
EventHandler
签名且
EventHandler

这些可以自动绑定到
ICommand
调用者(操作自动绑定到
Execute
处理程序,但自动绑定到
CanExecute


定制装订 除了这些简单的属性外,MvvmCross还具有“自定义绑定”功能

MvvmCross默认提供的“自定义绑定”列表位于AndroidBindingBuilder中的
FillTargetBindings

registry.RegisterCustomBindingFactory(“文本”,
textView=>新的MVXTViewTextTargetBinding(textView));
registry.RegisterPropertyInfoBindingFactory((typeof(mvxautompleteTextViewPartialTextTargetBinding)),
类型(自动完成文本视图),“部分文本”);
registry.RegisterPropertyInfoBindingFactory(
类型(MVXAutompleteTextViewSelectedObjectTargetBinding),
类型(自动完成文本视图),
“选定对象”);
registry.RegisterPropertyInfoBindingFactory(类型为(MvxCompoundButtonCheckedTargetBinding),
类型(复合按钮),“选中”);
registry.RegisterPropertyInfoBindingFactory(typeof(MvxSeekBarProgressTargetBinging),typeof(SeekBar),
“进展”);
registry.RegisterCustomBindingFactory(“可见”,
视图=>新MvxViewVisibleBinding(视图));
registry.RegisterCustomBindingFactory(“隐藏”,
视图=>新MVXViewhidEndBinding(视图));
registry.RegisterCustomBindingFactory(“位图”,
imageView=>new MvxImageViewBitmapTargetBinding(imageView));
registry.RegisterCustomBindingFactory(“DrawableId”,
imageView=>new MvxImageViewDrawableTargetBinding(imageView));
registry.RegisterCustomBindingFactory(“DrawableName”,
imageView=>new MvxImageViewDrawableNameTargetBinding(imageView));
registry.RegisterCustomBindingFactory(“AssetImagePath”,
imageView=>新的MvxImageViewImageTargetBinding(imageView));
registry.RegisterCustomBindingFactory(“SelectedItem”,
微调器=>
新MvxSpinnerSelectedItemBinding(
纺纱机);
registry.RegisterCustomBindingFactory

关于MvvmCross自定义控件、动画和地图的N+1主题也值得一看——它们提供了自定义绑定的替代机制


有关MvvmCross binding的更多信息,请参见

谢谢Stuart,这正是我想要的!我不确定这个列表是如何表示“默认”绑定的,因为我看不到诸如“单击”、“文本更改”等基本绑定。我今天也有同样的问题,想知道是否有系统的方法来发现现有绑定。编码时,我的主要目标之一是将大部分viewcontroller代码迁移到viewModel中,因此,了解指尖上的绑定非常重要。它们与Xamarin公开的任何公共C#get/set属性属于同一类型的“一网打尽”。Android可以单向绑定。
-我将更改问题中的文本以提供帮助。
        registry.RegisterCustomBindingFactory<TextView>("Text",
                                                        textView => new MvxTextViewTextTargetBinding(textView));
        registry.RegisterPropertyInfoBindingFactory((typeof(MvxAutoCompleteTextViewPartialTextTargetBinding)),
                                                typeof(AutoCompleteTextView), "PartialText");
        registry.RegisterPropertyInfoBindingFactory(
                                                typeof(MvxAutoCompleteTextViewSelectedObjectTargetBinding),
                                                typeof(AutoCompleteTextView),
                                                "SelectedObject");
        registry.RegisterPropertyInfoBindingFactory(typeof(MvxCompoundButtonCheckedTargetBinding),
                                                typeof(CompoundButton), "Checked");
        registry.RegisterPropertyInfoBindingFactory(typeof(MvxSeekBarProgressTargetBinging), typeof(SeekBar),
                                                "Progress");
        registry.RegisterCustomBindingFactory<View>("Visible",
                                                        view => new MvxViewVisibleBinding(view));
        registry.RegisterCustomBindingFactory<View>("Hidden",
                                                        view => new MvxViewHiddenBinding(view));
        registry.RegisterCustomBindingFactory<ImageView>("Bitmap",
                                                        imageView => new MvxImageViewBitmapTargetBinding(imageView));
        registry.RegisterCustomBindingFactory<ImageView>("DrawableId",
                                                        imageView => new MvxImageViewDrawableTargetBinding(imageView));
        registry.RegisterCustomBindingFactory<ImageView>("DrawableName",
                                                        imageView => new MvxImageViewDrawableNameTargetBinding(imageView));
        registry.RegisterCustomBindingFactory<ImageView>("AssetImagePath",
                                                         imageView => new MvxImageViewImageTargetBinding(imageView));
        registry.RegisterCustomBindingFactory<MvxSpinner>("SelectedItem",
                                                                         spinner =>
                                                                         new MvxSpinnerSelectedItemBinding(
                                                                             spinner));
        registry.RegisterCustomBindingFactory<AdapterView>("SelectedItemPosition",
                                                                          adapterView =>
                                                                          new MvxAdapterViewSelectedItemPositionTargetBinding
                                                                              (adapterView));
        registry.RegisterCustomBindingFactory<MvxListView>("SelectedItem",
                                                                          adapterView =>
                                                                          new MvxListViewSelectedItemTargetBinding
                                                                              (adapterView));
        registry.RegisterCustomBindingFactory<RatingBar>("Rating",
                                                        ratingBar => new MvxRatingBarRatingTargetBinding(ratingBar));
        registry.RegisterCustomBindingFactory<View>("LongClick",
                                                        view =>
                                                        new MvxViewLongClickBinding(view));
        registry.RegisterCustomBindingFactory<MvxRadioGroup>("SelectedItem",
            radioGroup => new MvxRadioGroupSelectedItemBinding(radioGroup));