Xamarin.android 如何使edittext在mvvmcross中可聚焦
我想知道是否有来自viewmodel属性的绑定机制在我选择的特定edittext中提供焦点(光标闪烁或指示textedit具有焦点的内容)。这是一个类似Mvvm的一般问题 正如在一般问题中一样,在MvvmCross中,您可以在视图中的某些代码中执行此操作。例如,您可以创建一个助手类,如:Xamarin.android 如何使edittext在mvvmcross中可聚焦,xamarin.android,xamarin,mvvmcross,Xamarin.android,Xamarin,Mvvmcross,我想知道是否有来自viewmodel属性的绑定机制在我选择的特定edittext中提供焦点(光标闪烁或指示textedit具有焦点的内容)。这是一个类似Mvvm的一般问题 正如在一般问题中一样,在MvvmCross中,您可以在视图中的某些代码中执行此操作。例如,您可以创建一个助手类,如: public class Helper { private Activity _a; public Helper(Activity a) {
public class Helper
{
private Activity _a;
public Helper(Activity a)
{
_a = a;
}
// TODO - this should probably be a ViewModel-specific enum rather than a string
private string _focussedName;
public string FocussedName
{
get { return _focussedName; }
set
{
_focussedName = value;
var mapped = MapFocussedNameToControlName(_focussedName);
var res = _a.Resources.GetIdentifier(mapped, "id", _a.PackageName);
var view = _a.FindViewById(res);
view.RequestFocus();
}
}
private string MapFocussedNameToControlName(string value)
{
// TODO - your mapping here...
return value;
}
}
然后可以在视图
和OnCreate
中将其绑定为:
private Helper _helper;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.main);
_helper = new Helper(this);
this.CreateBinding(_helper)
.For(h => h.FocussedName)
.To<MyViewModel>(x => x.FocusName)
.OneWay()
.Apply();
}
private Helper\u Helper;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.main);
_助手=新助手(此);
这个.CreateBinding(_helper)
.For(h=>h.FocusedName)
.To(x=>x.FocusName)
.单向
.Apply();
}
这段代码没有经过测试,但应该可以正常工作