【问题标题】:Mvvmcross Visibility in fluent binding流式绑定中的 Mvvmcross 可见性
【发布时间】:2017-05-04 12:57:22
【问题描述】:
我有瑞士绑定的 EditText(最后一行):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:MvxBind="Visibility Visibility(WebServiceEditVisible); Text EditTextWebServiceAdress" />
如何使用 Fluent 绑定编写与 Visibility 插件和 Text 属性的绑定?
【问题讨论】:
标签:
xamarin
xamarin.android
mvvmcross
【解决方案1】:
与您实施的瑞士绑定等效的流畅绑定将是:
资源文件:
<EditText
android:id="@+id/your_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
代码隐藏:
var myEditText = view.FindViewById<EditText>(Resource.Id.your_edit_text);
var bindingSet = this.CreateBindingSet<YourView, YourViewModel>();
bindingSet.Bind(yourEditText).For(c => c.Text).To(vm =>
vm.EditTextWebServiceAdress);
bindingSet.Bind(yourEditText).For(c => c.Visibility).To(vm =>
vm.WebServiceEditVisible).WithConversion(new MvxVisibilityValueConverter());
bindingSet.Apply();
此代码将进入片段的 OnCreateView 覆盖。如果您在 Activity 中工作,它会进入 OnCreate 中,您需要将 view.FindViewById<EditText>(Resource.Id.your_edit_text); 更改为 FindViewById<EditText>(Resource.Id.your_edit_text);。