728x90
반응형
728x170
▶ AnimalSearchHandler.cs
using TestProject.Models;
namespace TestProject;
/// <summary>
/// 동물 검색 핸들러
/// </summary>
public class AnimalSearchHandler : SearchHandler
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 리스트
/// </summary>
private List<AnimalModel> list = new List<AnimalModel>
{
new AnimalModel { ID = 1, Name = "고양이", Route = "//고양이" },
new AnimalModel { ID = 2, Name = "개" , Route = "//개" },
new AnimalModel { ID = 3, Name = "원숭이", Route = "//원숭이" },
new AnimalModel { ID = 4, Name = "코끼리", Route = "//코끼리" },
new AnimalModel { ID = 5, Name = "곰" , Route = "//곰" }
};
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Protected
#region 쿼리 변경시 처리하기 - OnQueryChanged(oldValue, newValue)
/// <summary>
/// 쿼리 변경시 처리하기
/// </summary>
/// <param name="oldValue">이전 값</param>
/// <param name="newValue">신규 값</param>
protected override void OnQueryChanged(string oldValue, string newValue)
{
base.OnQueryChanged(oldValue, newValue);
if(string.IsNullOrWhiteSpace(newValue))
{
ItemsSource = null;
}
else
{
ItemsSource = this.list;
}
}
#endregion
#region 항목 선택시 처리하기 - OnItemSelected(item)
/// <summary>
/// 항목 선택시 처리하기
/// </summary>
/// <param name="item">항목</param>
protected override async void OnItemSelected(object item)
{
base.OnItemSelected(item);
AnimalModel animal = item as AnimalModel;
await Shell.Current.GoToAsync($"{animal.Route}");
}
#endregion
}
728x90
▶ CatPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="TestProject.CatPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:TestProject"
Title="Cat Page"
BackgroundColor="White">
<Shell.SearchHandler>
<local:AnimalSearchHandler
DisplayMemberName="Name"
Placeholder="동물명을 입력해 주시기 바랍니다." />
</Shell.SearchHandler>
<StackLayout>
<Label Text="CAT PAGE"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage>
728x90
반응형
그리드형(광고전용)
'C# > MAUI' 카테고리의 다른 글
[C#/MAUI/.NET6] EventTrigger 엘리먼트 사용하기 (0) | 2022.05.06 |
---|---|
[C#/MAUI/.NET6] DataTrigger 엘리먼트 사용하기 (0) | 2022.05.06 |
[C#/MAUI/.NET6] Style 엘리먼트 : Triggers 속성을 사용해 스타일에서 트리거 설정하기 (0) | 2022.05.06 |
[C#/MAUI/.NET6] Keyboard 엘리먼트 : KeyboardFlags 열거형 사용하기 (0) | 2022.05.05 |
[C#/MAUI/.NET6] SearchHandler 엘리먼트 : ItemTemplate 속성 사용하기 (0) | 2022.05.05 |
[C#/MAUI/.NET6] Shell 클래스 : OnNavigating 메소드를 사용해 뒤로가기 탐색 취소하기 (0) | 2022.05.05 |
[C#/MAUI/.NET6] FontImage 태그 확장 사용하기 (0) | 2022.05.05 |
[C#/MAUI/.NET6] Shell 엘리먼트 : BackButtonBehavior 속성을 사용해 뒤로가기 버튼 동작 설정하기 (0) | 2022.05.04 |
[C#/MAUI/.NET6] Shell 엘리먼트 : BackButtonBehavior 속성을 사용해 뒤로가기 버튼 동작 설정하기 (0) | 2022.05.04 |
[C#/MAUI/.NET6] Shell 클래스 : GoToAsync 메소드 사용시 객체 기반 쿼리 매개 변수 전달하기 (QueryPropertyAttribute 클래스 사용) (0) | 2022.05.04 |
댓글을 달아 주세요