Пока я комментирую, что было бы лучше добавить панель поиска в XAML, а затем обновить видимость, я бы хотел ответить на вопрос, потому что она основана на распространенном заблуждении неопытных разработчиков.
С
private void ToolbarItem_Clicked(object sender, EventArgs e)
{
SearchBar searchBar = new SearchBar { Placeholder = "Search items..."};
}
вы создаете экземпляр класса SearchBar
. В любом случае, это не означает, что он автоматически добавляется на текущую страницу. Хотя может быть возможно каким-то образом - по крайней мере, технически - добавить экземпляр на текущую страницу, определив страницу, которая находится поверх текущего стека навигации, это не очень желательно по нескольким причинам
- Это не интуитивно понятно с позиции OOP
- Возможно, вы захотите подготовить представления и добавить их позже
- Возможно, вы захотите добавить представления на другую страницу
- Это даже не ясно , где , чтобы добавить представление на текущей странице. Обычно есть несколько мест, куда можно добавить представление.
- ...
Вместо этого вам придется добавить SearchBar
на страницу явно . Как именно зависит от макета вашей страницы, но при условии, что у вас есть StackLayout
<StackLayout x:Name="StackLayout">
<!-- ... -->
</StackLayout>
, вы можете добавить SearchBar
с
SearchBar searchBar = new SearchBar { Placeholder = "Search items..."};
StackLayout.Children.Add(searchBar);
Обратите внимание что это добавит SearchBar
в конце StackLayout
. Предположительно, вы хотели бы добавить его вверху, чего вы можете достичь с помощью
StackLayout.Children.Insert(0, searchBar); // insert searchBar at index 0