UWP XAML 콤보 상자 컨트롤 선택 eventSelectionChanged 사용 방법

SelectionChanged 이벤트를 UWP 콤보 상자인 컨트롤에서 마우스를 사용하여 선택한 항목의 값을 가져올 수 있습니다. 여러 항목 중 하나는 여러 자식 중에서 선택한 컨트롤의 값입니다. -제어 검색합니다.


UWP XAML Combobox 컨트롤 선택 이벤트
SelectionChanged 사용 방법

ComboBox는 다음을 사용합니다. – UWP에서 제어하여 여러 항목 중 하나를 선택합니다.

콤보 상자 컨트롤에는 여러 가지가 있습니다. 하위 컨트롤로 사용되며 그 중 하나가 화면에서 선택됩니다.

Combobox는 단순히 선택하는 것이 아니라 항목을 선택했을 때 값에 따라 이벤트가 발생할 수 있습니다.

SelectionChanged 이벤트를 UWP 콤보 상자인 컨트롤에서 항목 선택 시 원하는 작업을 추가할 수 있습니다.

UWP XAML을 사용하는 방법 콤보박스 컨트롤

UWP의 Combobox는 XAML 태그를 사용하고 여러 태그를 선택 요소로 사용합니다. 콤보 상자의 역할은 여러 항목 중 하나를 선택할 수 있도록 하는 것입니다. 먼저 화면에 나

lgnat.tistory.com

선택 이벤트 SelectionChanged

SelectionChanged 이벤트를 등록하고 사용하여 UWP 콤보 상자를 선택할 때 특정 작업을 트리거할 수 있습니다.

아래는 태그에서 SelectionChanged를 호출하는 XAML입니다. 등록된 UWP 콤보 상자입니다.

<ComboBox Name="콤보박스_컨트롤명" SelectionChanged="콤보박스_선택이벤트명_SelectionChanged">
	<ComboBoxItem/>
	<ComboBoxItem/>
	<ComboBoxItem/>
	....
</ComboBox>

xaml 코드에 이벤트를 등록했으면 C# 코드인 xaml.cs에 이벤트를 실제로 실행하기 위한 코드를 추가해야 합니다.

다음은 xaml.cs로 작성된 SelectionChanged 이벤트를 보여줍니다.

/** 콤보박스 선택시 이벤트 실행 */
private void ComboBoxSample_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
	ComboBox cb = sender as ComboBox;

	ComboBoxItem cbi = cb.Items(cb.SelectedIndex) as ComboBoxItem;
    
    // 코드
}

위의 코드는 UWP의 선택 이벤트인 SelectionChanged를 보여줍니다.실행 중인 컨트롤입니다.

위에서 중요한 점은 SelectedIndex 부분입니다.

컨트롤에는 여러 자식이 있습니다. -통제 수단.

SelectedIndex는 숫자 인덱스로 선택된 자식 컨트롤을 사용자에게 알려줍니다.

선택한 인덱스를 찾으면 어떤 하위 컨트롤이 선택되었는지 확인할 수 있습니다.

전체 코드

UWP 콤보 상자에서 항목이 선택되면 C# 코드를 만들어 어떤 항목이 선택되는지 확인합니다.

작성 후 삽입 -제어 및 데스 XAML에서 SelectionChanged 이벤트를 제어합니다.

xaml.cs 코드에서 SelectionChanged에 대한 코드를 작성하고 어떤 값이 선택되었는지 메시지 창으로 표시합니다.

아래는 컨트롤을 만든 UWP XAML입니다.

<Page
    x:Class="UWPAppTutorials.Ctl_ComboBoxPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPAppTutorials"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>

        <StackPanel>

            <ComboBox Name="ComboBoxSample" SelectionChanged="ComboBoxSample_SelectionChanged">
                <ComboBoxItem Content="---- 선택하세요 ----" Tag="" IsSelected="True"></ComboBoxItem>
                <ComboBoxItem Content="ItemText1" Tag="ItemValue1"></ComboBoxItem>
                <ComboBoxItem Content="ItemText2" Tag="ItemValue2"></ComboBoxItem>
                <ComboBoxItem Content="ItemText3" Tag="ItemValue3"></ComboBoxItem>
            </ComboBox>

        </StackPanel>

    </Grid>
</Page>

SelectionChanged 이벤트 코드는 제어는 다음과 같습니다.

xaml.cs 코드에서 SelectionChanged 이벤트를 구현하고 코드를 작성합니다.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Popups;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// 빈 페이지 항목 템플릿에 대한 설명은 https://go.microsoft.com/fwlink/?LinkId=234238에 나와 있습니다.

namespace UWPAppTutorials
{
    /// <summary>
    /// 자체적으로 사용하거나 프레임 내에서 탐색할 수 있는 빈 페이지입니다.
    /// </summary>
    public sealed partial class Ctl_ComboBoxPage : Page
    {
        public Ctl_ComboBoxPage()
        {
            this.InitializeComponent();
            
            /** 윈도우 크기 초기화 */
            InitSetWindowsSize();
        }

        /** MessageDialog 화면에 표시하기 */
        async void ShowMessageDialog(string content)
        {
            var dialog = new MessageDialog(content);
            await dialog.ShowAsync();
        }

        /** 윈도우 크기 초기화 */
        void InitSetWindowsSize()
        {
            double width = 480;
            double height = 320;
            ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(width, height));
        }

        /** 콤보박스 선택시 이벤트 실행 */
        private void ComboBoxSample_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox cb = sender as ComboBox;

            int idxItem = cb.SelectedIndex;

            if (idxItem == 0)
            {
                return;
            }

            ComboBoxItem cbi = cb.Items(cb.SelectedIndex) as ComboBoxItem;

            object objTag = cbi.Tag;
            object objContent = cbi.Content;

            string content = "";
            content += (cb.SelectedIndex + " 번째 :");
            content += ("{");
            content += (" 항목 : " + objTag);
            content += (", 값 : " + objContent);
            content += ("}");

            ShowMessageDialog(content);
        }
    }
}

SelectionChanged 이벤트 코드를 보면 SelectedIndex를 사용하여 값이 여러 개인 인덱스를 찾습니다. 자식 제어 선택되었습니다.

에서 태그와 콘텐츠 값을 추가한 후 수신되면 값을 표시하는 메시지 상자가 나타납니다.

결과 화면은 이렇게 생겼습니다.