将多个值绑定到一个控件Xamarin.Android MVVMCross MVX
Bind multiple values to one control Xamarin.Android MVVMCross MVX
我喜欢通过 MVX 将我的 ViewModel 的 2 个属性绑定到我的 EditText 控件中
我试过下面的代码,但编译器不批准第二个 local:mvxBind.
<EditText
android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
android:layout_width="match_parent"
android:layout_height="110dp"
android:gravity="top"
local:MvxBind="MaxLength Config.Field.GetMaxLength"
local:MvxBind="Text Config.Field.TextValue"
android:layout_marginBottom="0.0dp"
android:id="@+id/txtValue"/>
我的 ViewModel 有一个配置对象,配置对象有一个字段对象。
当我只绑定 1 属性。
对于文本 属性,它工作正常。
在 MaxLenght 属性 的情况下,该值被忽略
有人有什么想法吗?
更新:我找到了绑定多个属性的方法:
local:MvxBind="MaxLength Config.Field.GetMaxLength; Text Config.Field.TextValue"
文本绑定没问题...我可以看到 GetMaxLength 属性在我的 ViewModel 中的断点上...但在 EditText 控件中仍然被忽略。
我想知道EditText 属性 MaxLength 是否可以与MVX 绑定。
如果是这样?怎么样?
我在我的视图中做了一个解决方法,并通过 EditView.filters 设置 MaxLength,如下所示:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = base.OnCreateView(inflater, container, savedInstanceState);
// FIX for max length on Edit Text
if(ViewModel.Config.Field.MaxLength != null)
{
int maxLength = (int)ViewModel.Config.Field.MaxLength;
var editText = view.FindViewById<EditText>(Resource.Id.txtValue);
editText.SetFilters(new Android.Text.IInputFilter[] { new Android.Text.InputFilterLengthFilter(maxLength) });
}
return view;
}
如果有其他方法可以通过 MVX 完成。请告诉我们
我喜欢通过 MVX 将我的 ViewModel 的 2 个属性绑定到我的 EditText 控件中 我试过下面的代码,但编译器不批准第二个 local:mvxBind.
<EditText
android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
android:layout_width="match_parent"
android:layout_height="110dp"
android:gravity="top"
local:MvxBind="MaxLength Config.Field.GetMaxLength"
local:MvxBind="Text Config.Field.TextValue"
android:layout_marginBottom="0.0dp"
android:id="@+id/txtValue"/>
我的 ViewModel 有一个配置对象,配置对象有一个字段对象。 当我只绑定 1 属性。 对于文本 属性,它工作正常。 在 MaxLenght 属性 的情况下,该值被忽略
有人有什么想法吗?
更新:我找到了绑定多个属性的方法:
local:MvxBind="MaxLength Config.Field.GetMaxLength; Text Config.Field.TextValue"
文本绑定没问题...我可以看到 GetMaxLength 属性在我的 ViewModel 中的断点上...但在 EditText 控件中仍然被忽略。
我想知道EditText 属性 MaxLength 是否可以与MVX 绑定。 如果是这样?怎么样?
我在我的视图中做了一个解决方法,并通过 EditView.filters 设置 MaxLength,如下所示:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = base.OnCreateView(inflater, container, savedInstanceState);
// FIX for max length on Edit Text
if(ViewModel.Config.Field.MaxLength != null)
{
int maxLength = (int)ViewModel.Config.Field.MaxLength;
var editText = view.FindViewById<EditText>(Resource.Id.txtValue);
editText.SetFilters(new Android.Text.IInputFilter[] { new Android.Text.InputFilterLengthFilter(maxLength) });
}
return view;
}
如果有其他方法可以通过 MVX 完成。请告诉我们