视图层次结构中的MvvmCross绑定

时间:2016-09-28 22:11:46

标签: ios xamarin binding mvvmcross

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

我已经尝试了很多选项和教程,但到目前为止我无法使用它。

我会感谢任何关于我做错事的暗示。

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

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

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