Visual Studio/WPF > 컨트롤 > CombBox > Eratta: SelectedIndex, SelectedItem, Text 표시 코드

운영 환경
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
Sublime Text 2

@ WPF 4.5 입문 by 오타 카즈키
No.4344/9985

다음과 같이 설정한 ComboBox 컨트롤의 SelectedIndex 속성, SelectedItem 속성 및 Text 속성을 표시하는 프로그램의 실행 결과를 보여 줍니다.

위의 문장 아래에 있는 코드는 실행 결과를 재현하는 코드가 되지 않고, 앞쪽으로 나온 다른 코드의 예가 소개되어 있다.
게재 실수일까.

실행 결과의 이미지에서 코드를 생각해 보았습니다.

XAML
<Window x:Class="_170425_t2100_combobox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_170425_t2100_combobox"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <ComboBox x:Name="comboBox1"
                  Grid.Row="0" Height="40" SelectionChanged="comboBox1_SelectionChanged">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBox Text="{Binding Name}"/>
                        <TextBox Text="{Binding Age}"/>
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
        <StackPanel Grid.Row="1">
            <TextBox Name="T_selectedIndex"/>
            <TextBox Name="T_selectedItem"/>
            <TextBox Name="T_text"/>
        </StackPanel>
    </Grid>
</Window>

MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace _170425_t2100_combobox
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            var data = new List<Person>();
            data.Add(new Person { Name = "item1", Age = 10 });
            data.Add(new Person { Name = "item2", Age = 20 });
            data.Add(new Person { Name = "item3", Age = 30 });

            comboBox1.ItemsSource = data;
        }

        private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            T_selectedIndex.Text = "SelectedIndex:" + comboBox1.SelectedIndex.ToString();
            T_selectedItem.Text = "SelectedItem:" + comboBox1.SelectedItem.ToString();
            T_text.Text = "Text:" + comboBox1.Text;
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}



Text의 표시 결과가 다를지도 모른다.

좋은 웹페이지 즐겨찾기