2016-09-28 40 views
0

我在使用MvvmCross在Xamarin.iOS中創建綁定到自定義視圖(層次結構)的問題。MvvmCross在視圖層次結構中的綁定

我的自定義控件顯示一些文本並且有幾個按鈕。

在代碼中,它看起來是這樣的(simplyfied版本,我的最後一次嘗試)

// 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-

我已經嘗試了很多的選擇和教程但到目前爲止我還無法實現。

我會感謝任何暗示我做錯了什麼。

回答

2

嘗試以下操作:

更改此: set.Bind(CustomView.Text).To(ViewModel.Text);

要這樣: set.Bind(CustomView).For(c => c.Text).To(vm => vm.Text);