我想将命令绑定到我的工具栏'项目。可能吗? 我试过了,但它仍然没有用https://stackoverflow.com/a/21936542/6160208
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>();
}
答案 0 :(得分:1)
绑定到DoSearchCommand
,但这是方法。你应该绑定到SearchCommand
local:MvxBind="Click SearchCommand"
作为改进,您也可以使用IMvxCommand
而不是ICommand
,并将ShowViewModel添加为lambda。
private MvxCommand _searchCommand;
public IMvxCommand SearchCommand
{
get
{
_searchCommand = _searchCommand ?? new MvxCommand(() => ShowViewModel<SearchViewModel>());
return _searchCommand;
}
}