2016-04-07 1 views
2

Я хочу привязать команды к элементам моих панелей инструментов. Является ли это возможным? Я попытался это, но она по-прежнему не работает https://stackoverflow.com/a/21936542/6160208MvvmCross Команда привязки к <include> панели инструментов

Toolbar.axml

<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

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

ответ

1

Вы связываетесь с DoSearchCommand, но это метод. Вы должны связываться с SearchCommand

local:MvxBind="Click SearchCommand" 

Как улучшения вы могли бы использовать IMvxCommand вместо ICommand тоже, и добавить ShowViewModel, как лямбда.

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

О, спасибо за указание на мои ошибки! –