2013-04-05 53 views
2

我有一個使用XCode創建的簡單視圖(它是一個XIB)。它由兩個UITextView控件和一個UIButton組成。我已經將UITextView控件公開爲Outlets並給出了它們的名稱。在我的View.designer.cs文件中一切看起來都不錯。如何使用mvvmcross對UITextView控件進行雙向綁定?

我創建使用此語法我的綁定:

 this.AddBindings(
      new Dictionary<object, string>() 
      { 
       {lastname, "{'Text':{'Path':'LastName','Mode':'TwoWay'}}"}, 
       {uservin, "{'Text':{'Path':'CarVIN','Mode':'TwoWay'}}"} 

      }); 

當我從姓氏的UITextView到uservin的UITextView我希望在我的視圖模型二傳手得到所謂的移動,但事實並非如此。當我點擊按鈕並檢查ViewModel上兩個文本屬性的值時,它們都是空的。

有人知道我做錯了什麼嗎?我週二得到了一個快速演示,並且所有其他平臺的運行都非常好,但似乎無法解決這個問題。

乾杯,

/J

回答

3

我認爲這個問題將是您正在使用UITextView情況......但mvvmcross vnext僅僅自帶2路的UITextField元素結合。

要添加UITextView 2路結合到舊mvvmcross版本:

  1. 添加自定義目標綁定類 - 有點像這樣一個從V3:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Target/MvxUITextViewTextTargetBinding.cs

  2. 安裝過程中註冊它用的.cs代碼如下:

    protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry) 
    { 
        base.FillTargetFactories(registry); 
    
        registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(MvxUITextViewTextTargetBinding), typeof(UITextView), "Text"); 
    } 
    

或者(也許不是在您的直接演示之前),您可以考慮更新到v3 beta版本。


順便說一下,使用「瑞士」綁定語法一般現在做這個正常方式:

this.AddBindings(
     new Dictionary<object, string>() 
     { 
      {lastname, "Text LastName"}, 
      {uservin, "Text CarVIN"} 
     }); 

...和TwoWay結合是大多數非Windows MvvmCross綁定默認值。

+0

完美。再次感謝stuqrt! – 2013-04-09 02:24:41