2016-01-21 59 views
0

我實例化視圖,這樣的視圖模型:MvvmCross:RaisePropertyChanged沒有更新結合

var myView = new MyView { DataContext = new MyViewModel() }; 

我要讓這個觀點來自於應用,因此我加入視圖到RootViewController的任何地方訪問:

window.RootViewController.View.Add(myView.View); 

凡視圖模型從MvxViewModel和MyView的inherist繼承MvxViewController

的MyView的裏面,我一個UILabel綁定到TE這樣

this.CreateBinding(myLabel).To<MyViewModel>(vm => vm.MyTextProp).Apply(); 

text屬性XT屬性視圖模型內的綁定工作,初步確定這樣

private string myTextProp; 
    public string MyTextProp 
    { 
     get { return myTextProp; } 
     set 
     { 
      myTextProp = value; 
      RaisePropertyChanged(() => MyTextProp); 
     } 
    } 

加載時。但是當我更改MyTextProp屬性並調用RaisePropertyChanged時,UILabel未被更新。

我也綁定到一個ICommand工作正常,並正常觸發。

回答

1

而不是做var myView = new MyView { DataContext = new MyViewModel() };

讓MvvmCross通過這樣構建您的MvxViewController的:

var viewController = this.CreateViewControllerFor<MyViewModel>(); 

CreateViewControllerIMvxCanCreateTouchView的擴展方法,那麼,你做你的看法建築類,應執行該Inteface ,否則該方法將不可用。

我知道IMvxCanCreateTouchViewMvxTouchViewPresenterMvxViewController實現的,因此您可以調用該方法從Presenter或從另一個MxvViewController