1
私はプロジェクトにBottomNavigationBar
を追加するためにthisライブラリを使用しています。私はこのプロジェクトのフレームワークにもMvvmCrossを使用しています。私はどのようにMvxCommand
を私のBottomBar
にバインドするのか分かりません。誰でもこれがどうやってできるのか知っていますか?ここでMvxCommandをBottomBarに接続するにはどうすればよいですか?
は大体私のViewModel
でMvxCommand
が見えるものであるように:
public ICommand OnTabSelectedCommand
{
get { return New MvxCommand(() => OnTabSelected()); }
}
私BottomBar
作成は、次のようになります。
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var recycler = FindViewById<MvxRecyclerView>(Resource.Id.menuList);
var layoutManager = new LinearLayoutManager(this);
recycler.SetLayoutManager(layoutManager);
recycler.NestedScrollingEnabled = false;
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarFinder);
SetSupportActionBar(toolbar);
_bottomBar = BottomBar.AttachShy((CoordinatorLayout)FindViewById(Resource.Id.ListCoordinator),
FindViewById(Resource.Id.menuList), savedInstanceState);
_bottomBar.SetItems(new[]
{ new BottomBarTab(Resource.Drawable.ic_recents, "Recents"),
new BottomBarTab(Resource.Drawable.ic_favorites, "Favorites"),
new BottomBarTab(Resource.Drawable.ic_nearby, "Nearby") }
);
_bottomBar.SetOnMenuTabClickListener(this);
_bottomBar.SetActiveTabColor(Color.Red);
_bottomBar.MapColorForTab(0, "#7B1FA2");
_bottomBar.MapColorForTab(1, "#FF5252");
_bottomBar.MapColorForTab(2, "#FF9800");
}
public void OnMenuTabSelected(int menuItemId)
{
// Do something
}
public void OnMenuTabReSelected(int menuItemId)
{
// Do Something
}
は、追加の「if(menuItemId == XXX)myViewModel
は、次に、あなただけで、あなたのコマンドを呼び出す必要があります.OnTabSelectedCommand.Execute() "ビューの" OnMenuTabSelected "メソッドで。 – hugoterelle
@hugo働きたくありません。私は 'ListHomeViewModel.OnTabSelectedCommand.Execute();'を呼び出していますが、エラーが発生します。私は '静的'コマンドを作る必要がありますか? – user5661402
いいえ、 "public class myview:MvxActivity"のような宣言を使用すると、 "MyViewModel"タイプの "ViewModel"という名前のプロパティがあります。そして、 "ViewModel.OnTabSelectedCommand.Execute()"を呼び出す必要があります。間違ったviewmodelの使用法を申し訳ありません... –
hugoterelle