public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater) { // The view pager sets this hint (through our parent fragment) so we need // to figure out if the menu items are visible or not. if (!UserVisibleHint) return; base.OnCreateOptionsMenu(menu, inflater); inflater.Inflate(Resource.Menu.ListMenu, menu); var searchMenu = menu.FindItem(Resource.Id.action_search); this._searchView = MenuItemCompat.GetActionView(searchMenu).JavaCast<SearchView>(); this._searchView.QueryHint = "Search for assets."; this._searchView.LayoutParameters = new ActionBar.LayoutParams(GravityFlags.Right); this._searchView.QueryTextChange += (s, e) => { ViewModel.Constraint = e.NewText; }; this._searchView.QueryTextSubmit += (s, e) => { e.Handled = true; }; MenuItemCompat.SetOnActionExpandListener(searchMenu, new SearchViewExpandListener(this._adapter)); } public string SearchTerm { get { return ViewModel.Constraint; /* just to make the compiler happy */ } set { // Do not use string variant. // See: https://bugzilla.xamarin.com/show_bug.cgi?id=25995 this._adapter.Filter.InvokeFilter(new Java.Lang.String(ViewModel.Constraint)); } }