콤보박스 속성인 selecteditem과 selectedvalue의 차이점에 대해 낱낱이 파헤쳐보도록 하겠습니다.
이 글을 읽기 전 선수 지식 포스팅
1) 코드비하인드
//MainWindow.xaml.cs
(1) Person클래스와 그 Person클래스를 담을 그릇인 People 클래스를 만들었습니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 1) 코드비하인드 person클래스생성](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
(2) Person객체들을 담은 People 객체를 DataContext에 할당합니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 1) 코드비하인드 datacontext 할당](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
(3) 버튼 이벤트 생성
해당 코드는 디버그시 해당 값들이 무엇인지 확인하기 위함입니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 1) 코드비하인드 디버깅코드작성](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2) xaml
//MainWindow.xaml
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 2) xaml 기본layout](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
간단한 UI를 만들어보았습니다.
Name="combo"는 code-behind 단에서 사용하기 위한것입니다.
(해당 코드가 낯선분들은 콤보박스 포스팅을 읽고 와주시기 바랍니다.)
3) 디버깅
세번째에 위치한 messi를 클릭해볼게요.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 2) xaml 디버깅](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
조사식 창을 확인 결과 SelectedItem, SelectedValue 둘 다 현재 선택된 객체(object)를 반환하고 있습니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 2) xaml 조사식결과](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
그렇다면 이 둘의 차이는 없는걸까요?
결론부터 말하자면 SelectedValue는 같이 쓸 수 있는 짝궁이 있습니다.
바로 SelectedValuePath인데요.
이 친구는 아래와 같은 모습으로 사용됩니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 2) xaml SelectedValuePath사용](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
콤보박스 내부에 SelectedValuePath 속성값을 지정하고 value 값으로로 출력하고싶은 클래스의 프러퍼티명을 적어줍니다.
다시 디버깅해보면, SelectedValue의 값이 변경된걸 알 수 있습니다.
![[c# wpf] 콤보박스 selecteditem vs selectedvalue 차이점 - 2) xaml 조사식 결과](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
정리하자면 SelectedValue는 SelectedValuePath와 함께 쓸수 있으며, 이를 통해 원하는 프러퍼티값만 추출이 가능합니다.
'c# > wpf' 카테고리의 다른 글
[c#] 델리게이트를 왜 쓸까? (1) | 2022.06.24 |
---|---|
[c# wpf] DataContext 다양한 연결 방법(with binding) (0) | 2022.06.24 |
[c# wpf] ObservableCollection란? (1) | 2022.06.24 |
[c# wpf] 리스트뷰 출력 값에 % 붙히기(간단한 방법) (1) | 2022.06.23 |
[c# wpf] 클래스의 프러퍼티를 콤보박스 아이템으로 넣는 법? (0) | 2022.06.23 |
댓글
꼬예님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.