2015-04-16 33 views
1

我使用Cheesebaron的MvxViewPagerFragmentAdapter例的实现,可以在这里http://blog.ostebaronen.dk/2013/07/fragments-and-viewpager-with-mvx.htmlMVVMCross手动绑定在MvxFragment与MvxViewPagerFragmentAdapter

var fragments = new List<MvxViewPagerFragmentAdapter.FragmentInfo> 
      { 

      new MvxViewPagerFragmentAdapter.FragmentInfo 
      { 
       FragmentType = typeof(JobDetailsView), 
       Title = "Detail", 
       ViewModel = ViewModel 
      }, 
      new MvxViewPagerFragmentAdapter.FragmentInfo 
      { 
       FragmentType = typeof(JobFeaturesView), 
       Title = "Info", 
       ViewModel = ViewModel 
      } 
} 

发现在我的JobDetailsView的OnCreateView,我可以抬高我的布局使用BindingInflate任何绑定指定我在XML布局中指定了正确的工作。

我现在有要求以编程方式绑定一些元素,我尝试使用CreateBindingSet,但绑定不起作用。我试过了一个简单的文本属性和一个按钮点击。这些在XML中指定时都可以工作。

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState) 
    { 

     var ignored = base.OnCreateView(inflater, container, savedInstanceState); 
     this.EnsureBindingContextIsSet(savedInstanceState); 
     _view = this.BindingInflate(Resource.Layout.jobview_details, null);//jobview_withtabs_details 

     var signatureCard = _view.FindViewById<CardFeature>(Resource.Id.signature_cardview); 
     signatureCard.FindViewById<TextView>(Resource.Id.tv_basecard_header_title).Text = "Signature"; 
     var signatureButton = signatureCard.FindViewById<Button>(Resource.Id.btn_basecard_footer).Text = "Capture"; 

     var set = this.CreateBindingSet<JobDetailsView, JobWithTabsViewModel>(); 
     set.Bind(signatureButton).To(vm => vm.SignatureClickCommand); 
     set.Apply(); 

     return _view; 

    } 

在我的输出窗口,我可以看到这一点,但我不知道怎样做才能解决这个问题:

04-16 17:40:43.721 I/mono-stdout(27727): MvxBind:Error: 23.79 Empty binding target passed to MvxTargetBindingFactoryRegistry 
MvxBind:Warning: 23.80 Failed to create target binding for binding for SignatureClickCommand 
[0:] MvxBind:Warning: 23.80 Failed to create target binding for binding for SignatureClickCommand 
04-16 17:40:43.731 I/mono-stdout(27727): MvxBind:Warning: 23.80 Failed to create target binding for binding for SignatureClickCommand 

人有什么想法?

UPDATE

以典型的方式,留下了一个小时,实现了我的错误。

我被输入懒惰:

var signatureButton = signatureCard.FindViewById<Button>(Resource.Id.btn_basecard_footer).Text = "Capture" 

这令人困惑的结合。切换到:

var signatureButton = signatureCard.FindViewById<Button>(Resource.Id.btn_basecard_footer); 
signatureButton.Text = "Capture"; 

而且它完美

+1

你也可能想看看https://github.com/jamesmontemagno/PagerSlidingTabStrip-for-Xamarin.Android Cheesebaron的ViewPageIndicator有点过时了。 – Martijn00

+0

干杯,会做 – wainy

回答