使用MvvmCross在Xamarin.iOS中创建与自定义视图(视图层次结构)的绑定时出现问题。
我的自定义控件显示一些文字并且按钮很少。
在代码中它看起来像这样(简单的版本,我的最后一次尝试)
// Custom control
public class CustomView : MvxView
{
// Views
private TextFieldWithImageButton TextField;
// ...
// Properties
public string Text
{
get
{
return TextField.Text;
}
set
{
TextField.Text = value;
}
}
// ...
}
// ViewModel for Controller
public class MainViewModel : MvxViewModel
{
private string _text = "";
public string Text
{
get { return _text; }
set { _text = value; }
}
// ...
}
// ViewController
public class MainViewController : MvxViewController
{
// Views
private CustomView CustomView;
// ViewModel
public MainViewModel ViewModel;
// ... intialization and other stuff
// Binding ... called from ViewDidLoad method
private void CreateBinding()
{
var set = CustomView.CreateBindingSet<CustomView, MainViewModel>();
set.Bind(CustomView.Text).To(ViewModel.Text);
set.Apply();
}
}
但我总是得到
MvxBind: Error: 0,21 Empty binding target passed to MvxTargetBindingFactoryRegistry
和
MvxBind: Warning: 0,21 Failed to create target binding for binding for -empty-
我已经尝试了很多选项和教程,但到目前为止我无法使用它。
我会感谢任何关于我做错事的暗示。
答案 0 :(得分:2)
尝试以下方法:
改变这个:
set.Bind(CustomView.Text).To(ViewModel.Text);
对此:
set.Bind(CustomView).For(c => c.Text).To(vm => vm.Text);