2016-04-07 19 views
2

Araç çubuklarımın öğelerine komutları bağlamak istiyorum. Mümkün mü? Bunu denedim ama https://stackoverflow.com/a/21936542/6160208MvvmCross Bind komutu <include> araç çubuğuna

Toolbar.axml çalışmak

<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:local="http://schemas.android.com/apk/res-auto" 
      android:background="@android:color/holo_blue_light" 
      android:layout_width="match_parent" 
      android:layout_height="85dp"> 

     <ImageButton 
      android:src="@drawable/search" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/searchImageButton" 
      android:layout_marginLeft="290dp" 
      local:MvxBind="Click DoSearchCommand" 
      android:background="@android:color/holo_blue_light" /> 

MainView.axml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:local="http://schemas.android.com/apk/res-auto" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <include 
       layout="@layout/toolbar" /> 
</LinearLayout> 

MainViewModel.cs gelmez hala

private MvxCommand _searchCommand; 
    public System.Windows.Input.ICommand SearchCommand 
    { 
     get 
     { 
      _searchCommand = _searchCommand ?? new MvxCommand(DoSearchCommand); 
      return _searchCommand; 
     } 
    } 
    private void DoSearchCommand() 
    { 
     ShowViewModel<SearchViewModel>(); 
    } 

cevap

1

DoSearchCommand'a bağlanırsınız, ancak bu yöntemdir. SearchCommand

local:MvxBind="Click SearchCommand" 

iyileştirme olarak bunun yerine de bir ICommand bir IMvxCommand kullanabilir ve lambda olarak ShowViewModel eklemek Sen bağlamak gerekir.

private MvxCommand _searchCommand; 
    public IMvxCommand SearchCommand 
    { 
     get 
     { 
      _searchCommand = _searchCommand ?? new MvxCommand(() => ShowViewModel<SearchViewModel>()); 
      return _searchCommand; 
     } 
    } 
+0

Hata yaptığımı düşündüğünüz için teşekkürler! –