[C#/MAUI/.NET6] SelectedItemEventArgsConverter 엘리먼트 : 항목 선택 이벤트 인자 변환자 사용하기
C#/MAUI 2022. 7. 25. 21:17728x90
728x170
▶ MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="TestProject.MainPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
<ContentPage.Resources>
<toolkit:SelectedItemEventArgsConverter x:Key="SelectedItemEventArgsConverterKey" />
</ContentPage.Resources>
<ListView
ItemsSource="{Binding ItemList}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label
Margin="10"
Text="{Binding}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Behaviors>
<toolkit:EventToCommandBehavior
EventName="ItemSelected"
EventArgsConverter="{StaticResource SelectedItemEventArgsConverterKey}"
Command="{Binding ItemSelectedCommand}" />
</ListView.Behaviors>
</ListView>
</ContentPage>
300x250
▶ MainPage.xaml.cs
using System.Windows.Input;
namespace TestProject;
/// <summary>
/// 메인 페이지
/// </summary>
public partial class MainPage : ContentPage
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 항목 리스트 - ItemList
/// <summary>
/// 항목 리스트
/// </summary>
public List<string> ItemList { get; set; }
#endregion
#region 선택 항목 - SelectedItem
/// <summary>
/// 선택 항목
/// </summary>
public string SelectedItem { get; set; }
#endregion
#region 항목 선택시 명령 - ItemSelectedCommand
/// <summary>
/// 항목 선택시 명령
/// </summary>
public ICommand ItemSelectedCommand { get; private set; }
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainPage()
/// <summary>
/// 생성자
/// </summary>
public MainPage()
{
InitializeComponent();
ItemList = new List<string>()
{
"광주",
"대전",
"대구",
"목포",
"부산",
"서울",
"수원",
"울산",
"포항"
};
SelectedItem = ItemList[1];
ItemSelectedCommand = new Command<string>
(
async (e) =>
{
await DisplayAlert("INFORMATION", $"{e} 항목을 선택하였습니다.", "확인");
}
);
BindingContext = this;
}
#endregion
}
728x90
▶ MauiProgram.cs
using CommunityToolkit.Maui;
namespace TestProject;
/// <summary>
/// MAUI 프로그램
/// </summary>
public static class MauiProgram
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region MAUI 앱 생성하기 - CreateMauiApp()
/// <summary>
/// MAUI 앱 생성하기
/// </summary>
/// <returns>MAUI 앱</returns>
public static MauiApp CreateMauiApp()
{
MauiAppBuilder builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit()
.ConfigureFonts
(
fontCollection =>
{
fontCollection.AddFont("OpenSans-Regular.ttf" , "OpenSansRegular" );
fontCollection.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
}
);
return builder.Build();
}
#endregion
}
728x90
그리드형(광고전용)