Silverlight 2 Controls Review - ComboBox

ComboBox는 Silverlight 2 RC0이(가) 출시 되면서 추가된 컨트롤입니다. ListBox와 사용면에서 전체적으로 동일한 기능을 수행하지만 DropDown 형으로 르로그램 UI를 디자인할 때 좁은 공간에서 좀더 ListBox보다 유연한 디자인을 할 수 있습니다. 기본 사용법은 Xaml에서 디자인하는 방법과 동적으로  C#(CS) 코드에서 생성할 수 있습니다.

Xaml Data Binding

<ComboBox VerticalAlignment="Top" Width="110" Height="28" HorizontalAlignment="Left"

                 Margin="31,25,0,0" x:Name="cboItem">

            <ComboBox.Items>

                <ComboBoxItem Content="항목 1" />

                <ComboBoxItem Content="항목 2" />

                <ComboBoxItem Content="항목 3" />

                <ComboBoxItem Content="항목 4" />

                <ComboBoxItem Content="항목 5" />

            </ComboBox.Items>

</ComboBox>


C# Code Data Binding

cboCustomer.Items.Add("항목 1");

cboCustomer.Items.Add("항목 2");

cboCustomer.Items.Add("항목 3");

cboCustomer.Items.Add("항목 4");

cboCustomer.Items.Add("항목 5");


ComboBox에서 항목 선택했을경우


ComboBox에서 항목 펼침


항목을 기본(Default)으로 선택할 경우입니다.

<ComboBoxItem Content="항목 1" IsSelected="True" />


동적으로 항목(Item)을 간단하게 바인딩하는 ComboBox 예제입니다.





Xaml Code

<UserControl x:Class="ControlTest5.Page"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="400" Height="300">

    <Grid x:Name="LayoutRoot" Background="White">

        <ComboBox VerticalAlignment="Top" Height="26"

                  Margin="32,29,193,0" x:Name="cboCustomer"/>

    </Grid>

</UserControl>



C# Code

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

 

namespace ControlTest5

{

    public partial class Page : UserControl

    {

        public Page()

        {

            InitializeComponent();

 

            this.Loaded += new RoutedEventHandler(Page_Loaded);

        }

 

        void Page_Loaded(object sender, RoutedEventArgs e)

        {

            List<CustomerData> cstData = new List<CustomerData>();

 

            cstData.Add(new CustomerData()

                        { UserID = "MrHong", UserName= "홍길동", UserNation="Korea"});

            cstData.Add(new CustomerData()

                        { UserID = "Taedi", UserName = "임꺽정", UserNation = "Korea" });

            cstData.Add(new CustomerData()

                        { UserID = "david", UserName = "대니스", UserNation = "USA" });

 

          

            cboCustomer.ItemsSource = cstData;

            cboCustomer.SelectedIndex = 1;

        }

    }

 

    public class CustomerData

    {

        public string UserID { get; set; }

        public string UserName { get; set; }

        public string UserNation { get; set; }

 

        public override string ToString()

        {

            return UserID + " / " + UserName + " /  " + UserNation;

        }

    }

 

}

 



ControlTest5.zip