본문 바로가기
C#/WPF

[C#/WPF] ComboBox(콤보박스) 생성 및 사용 방법

by 코딩이라구 2023. 8. 9.

C#, WPF에서 많이 사용하는 ComboBox(콤보박스)의 사용법에 대하여 알아보도록 하겠습니다. 콤보박스를 사용하는 방법으로는 콤보박스 생성, 콤보박스 아이템 삽입, 마지막으로 콤보박스에서 선택된 아이템(Item) 값을 가져오기입니다.


C#/WPF ComboBox(콤보박스) 사용법

C#-WPF-ComboBox-화면
ComboBox 화면

ComboBox란?

  • ComboBox는 나열된 Item들 중에서 하나를 선택하여 사용할 수 있도록 해주는 Control입니다. 여러 가지 항목 중에서 하나를 선택하여 사용해야 하는 경우 많이 사용됩니다.
  • 실제 많이 사용되고 있는 예로는 글자 폰트를 선택할 때도 사용될 수 있으며, 구글 정렬 방식에서도 콤보박스가 사용되며, 네이버나 구글 등 검색창 입력 시 나오는 관련 키워드 역시 콤보박스 개념으로 볼 수 있습니다.

1. ComboBox 생성 및 Items 추가

ComboBox-xaml-코드
ComboBox .xaml 코드

xaml 코드에서 ComboBox를 추가합니다. 위 사진을 보시면 <ComboBox> 태그 안에 <ComboBoxItem>이 나열된 것을 보실 수 있습니다. 나열된 Item이 ComboBox를 클릭하였을 때 선택할 수 있는 Item입니다.

ComboBox 태그 안에는 여러 가지 속성들이 나열되어 있는데, 중요한 부분은 콤보박스를 선택하였을 때 반응하는 SelectionChanged 이벤트를 추가하였습니다.

간단하게 Margin은 여백을 설정하는 것이며, Alignment는 각 수직/수평의 정렬을 위하여 설정하였습니다. 속성값으로 Stretch를 사용한 이유는 해당 수평과 수직을 상위 컨트롤에 맞게 맞추기 위함입니다.


2. ComboBox Item 초기값 설정

ComboBox-Item-초기값-설정
ComboBox Item 초기값 설정

 

프로그램을 실행하였을 때, ComboBox의 초기값을 설정하여 가장 먼저 표시되는 Item을 지정할 수 있습니다. 위 사진에서 적용된 초기값 1번은 ComboBox에 아무것도 표시되지 않는 것을 의미합니다. 2번을 하실 경우에는 가장 먼저 등록된 값 '서울'이 초기값으로 설정되고, 3번의 경우 마지막으로 등록된 '부산'이 초기값으로 설정됩니다. 상황에 맞는 초기값으로 설정하실 수 있습니다.

참고로 1번(SelectedIndex = -1)을 제외한 다른 설정을 하실 경우 콤보박스의 Item이 변경된 것으로 인식되어 SelectionChanged Event가 발생합니다. 이점 유의하시기 바랍니다.


3. ComboBox 선택된 Item의 Value 가져오기

1) SelectionChanged 이벤트

ComboBox-SelectionChanged-Event
ComboBox SelectionChanged Event

마지막으로 ComboBox의 생성 및 Item 설정이 다 된 이후 ComboBox의 값을 선택할 때 발생하는 이벤트입니다. 이 이벤트는 현재 설정된 값이 다른 값으로 바뀔 때만 발생합니다.

위 코드는 ComboBox의 값이 변경될 때, 변경된 값을 가져와서 TextBlock에 입력하는 기능입니다. Sender를 통하여 현재 이벤트가 발생한 ComboBox를 정의한 후 선택된 Item의 Content 문자열을 가져오는 방식으로 선택 시 아래 사진과 같이 변경됩니다.

ComboBox-선택-화면
ComboBox에서 '대구'가 선택된 화면


이번 시간에는 C#/WPF에서 ComboBox를 사용하는 방법에 대하여 알아보았습니다. 실제로 많이 사용되는 Control로 위 사용법 외에도 여러 가지 이벤트 및 Binding을 통하여 더욱 편리하게 사용하실 수 있습니다.

추가적인 내용을 더욱 보강할 예정입니다. 꾸준히 업데이트하겠습니다.


 

C# 관련 포스팅 정보
 

[C#/WPF] 프로그램 메인창 닫기 (종료)

C#에서 메인 프로그램을 닫기 위하여 제가 사용하는 방법에 대하여 공유해보도록 하겠습니다. C#/WPF 프로그램 종료 MainWindow.xaml.cs public void CloseMainApp() { // 해당 윈도우창을 닫음 Close(); // 강제 종

chragu.com

 

[C#/WPF] 프로그램 최상위 표시 (TopMost)

프로그램 사용 중 항상 이 프로그램이 최상위에 표시가 되어 있는것을 원하실 때가 있습니다. 이때 C#에서 속성을 변경하여 최상위에 프로그램을 위치시킬 수 있습니다. 이번에는 TopMost 속성을

chragu.com

 

[C#/WPF] 모달/모달리스 다이얼로그 창 열기

C#에서는 상황에 따라 다이얼로그 창을 띄우게 됩니다. 이때, 모달과 모달리스 다이얼로그 창을 선택하여 표시할 수 있습니다. 이번에는 모달과 모달리스 다이얼로그의 설명과 어떤 식으로 구현

chragu.com

댓글