none
Silverlight 에서 콤보박스 사용하는 방법 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “Silverlight 에서 콤보박스 사용하는 방법에 대한 답변을 드리겠습니다.

     

     

    Step 1 : XAML 구현

     

    <!--콤보박스를 생성합니다.-->
    <ComboBox Width="100"
                Height="30"
                VerticalAlignment="Center">
        <ComboBox.Items >
            <!--콤보 박스의 아이템을 생성합니다.-->
            <ComboBoxItem Content="Item1" />
            <ComboBoxItem Content="Item2" />
            <ComboBoxItem Content="Item3" />
        </ComboBox.Items>
    </ComboBox>

     

     

    Step 2 : 생성시 선택 항목 선택

     

    ComboBoxItem IsSelected의 속성을 이용해서 생성시 아이템을 선택할 수 있습니다.

     

    <ComboBoxItem Content="Item3" IsSelected="True" />

     

     

    Step 3 : ComboBox DataBinding

     

    XAMlItemsSource에 바인딩할 Property를 설정합니다.

               

    MainPage.XAML

     

    <!--콤보박스를 생성합니다.-->
    <ComboBox Width="100"
                Height="30"
                VerticalAlignment="Center"
                ItemsSource="{Binding Path=ComboBoxSource}"
                ItemTemplate="{StaticResource ComboBoxTemplate1}">            
    </ComboBox>

     

     

     

    아래의 속성을 ComboBox ItemSource의 속성에 Binding을 합니다.

    //ItemsSource Bindng
    ComboBoxSource = new Collection<ComboBoxItem>
    {
        new ComboBoxItem
        {
            Name = "Item1"
        },
        new ComboBoxItem
        {
            Name = "Item2"
        },
        new ComboBoxItem
        {
            Name = "Item3"
        }
    };

     

     

    Binding하는 Class를 미리 정의 합니다.

    //ComboBoxItem Binding하는 Class
    public class ComboBoxItem : INotifyPropertyChanged 
    {
    #region Field
    private string _displayName;
    private string _name;
     
    public string DisplayName
    {
        get { return _displayName; }
        set
        {
            if (_displayName != value)
            {
                _displayName = value;
                RaisePropertyChanged("DisplayName");
            }
        }
    }
     
    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value)
            {
                _name = value;
                RaisePropertyChanged("Name");
            }
        }
    }
    #endregion Field
                   
    #region Method
    public void RaisePropertyChanged(string propname)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(thisnew PropertyChangedEventArgs(propname));
        }
    }
    #endregion Method
     
    #region Event
    public event PropertyChangedEventHandler PropertyChanged;
    #endregion Event
    }

     

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 9월 29일 목요일 오전 4:01
    2011년 9월 28일 수요일 오전 9:26
    중재자