视图层次结构中的 Mvvm 交叉绑定

MvvmCross binding in a view hierarchy

我在 Xamarin.iOS 中使用 MvvmCross 创建到自定义视图(视图层次结构)的绑定时遇到问题。

我的自定义控件显示了一些文本并且只有几个按钮。

在代码中它看起来像这样(简化版本,我最后一次尝试)

// 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 MvxTargetBindingFactoryRegistryMvxBind: Warning: 0,21 Failed to create target binding for binding for -empty-

我尝试了很多选项和教程,但到目前为止我无法正常工作。

对于我做错了什么的任何提示,我将不胜感激。

尝试以下操作:

改变这个: set.Bind(CustomView.Text).To(ViewModel.Text);

为此: set.Bind(CustomView).For(c => c.Text).To(vm => vm.Text);