2016-12-28 3 views
1

私はXamarin iOSプロジェクト用にMVVMCrossを使用しています。私はセル内のボタンを使用しています。コマンドでviewModelに接続したいのですが、なんらかの理由でそれらを正常にバインドできません。Xamarin iOS - MVVMCross:ViewModelのコマンドでカスタムセルのボタンを接続できません

誰かが一見して私が間違って行っているか、私のコードにどのような更新を加えるべきか教えてください。

ビュー:

public partial class MyCell : MvxCollectionViewCell 
{ 
     public PostImageCell(IntPtr handle) : base(handle) 
     { 
      this.DelayBind(() => 
      { 
        var bSet = this.CreateBindingSet<MyCell, SomeViewModel>(); 
        bSet.Bind(Btn).To(vm => vm.EditPhotoCommand); 
        bSet.Apply(); 
      }); 
     } 
} 

のViewModel:

public class SomeViewModel : BaseCoreViewModel 
{ 
     public SomeViewModel() 
     { 
     editPhotoCommand = new BaseMvxCommand(DoShow); 
     } 

     public ICommand EditPhotoCommand { get { return editPhotoCommand; } } 

     private void DoShow() 
     { 
      // 
     } 
} 

私は、いくつかのブレークポイントを維持し、MyCellコンストラクタが呼び出されているとき、this.DelayBind()内部のコードがヒットされていないことに気づきましただから私はthis.DelayBindを取り除こうとしましたが、まだ使用していません。 私は、セル内のボタンをクリックするたびに、そのViewModelに

+0

あなたの 'Btn'コントロールは' UIButton'から継承していますか?それはどのタイプですか? – Plac3Hold3r

+0

@ Plac3Hold3rはい、UIButton – TheDeveloper

+0

Azhar Aliから派生しました。この問題を再現するサンプルを提供できますか? – Plac3Hold3r

答えて

0

内のコマンドに結合していないが、おそらくあなたのViewModelに以下のような何かをしてからbSet.Bind(BTN).TO(VM => vm.ClickCommandとしてバインド);私はあなたのボタンが適切にビューに設定されている。今私は、tableviewcellのボタンで作業しているサンプルを持っています。

private MvxCommand _clickCommand; 
    public ICommand ClickCommand 
    { 
     get 
     { 
      _clickCommand = _clickCommand ?? new MvxCommand(Hit); 
      return _clickCommand; 
     } 
    } 

    private void Hit() 
    { 
     System.Diagnostics.Debug.WriteLine("Tapped Click Me"); 
     //System. .WriteLine ("Tapped Click Me"); 
    } 
+0

私はそれを試しましたが、それは動作しませんでした – TheDeveloper

関連する問題