2014-09-28 3 views
0

WinRT의 XAML 콤보 박스의 특정 동작 중 하나가 내 두통을 유발합니다. 왜냐하면 제 클라이언트가이를 결함으로 간주하고 컨트롤의 동작인지, 그는 그것이 바뀌길 바란다. 그러나, 나는 그것을 바꿀 방법을 알려주 아무것도 찾을 수 없습니다. 내가 말하고있는 동작은 아무것도 선택하지 않으면 ComboBox 팝업이 열려 목록의 중간에 ItemsSource가 표시됩니다. 나는 미국, 영국, 예외를 제외하고, 정렬 된 국가 목록을 가지고 있습니다. 이 3 가지 항목은 가장 자주 선택되는 항목이며 클라이언트는 목록을 스크롤하여 찾지 않고 맨 위에 놓기를 원합니다. 그렇게하기는 쉽지만 중간에 목록이 열리기 때문에 스크롤 할 때까지 스크롤해야합니다. 이 행동을 끄는 내가 누락 된 자산이 있습니까? 나는 CarouselPanel이 결함이 아니라는 것을 마침내 그들에게 확신시킬 수 있었지만 이것은 비행하지 않을 것입니다.WinRT XAML ComboBox가 목록 중간에 열림

미리 감사드립니다.

when no selection has been made

list is opened in the middle

UPDATE : 그래서이 콤보는 뷰 모델을 통해 데이터 바인딩된다. 이 경우 ViewModel에는 특정 속성에 대한 값 (빈 문자열)이 없으므로 Combobox는 비어있는 것으로 표시됩니다. 이는 좋고 바람직합니다. 콤보 박스를 클릭하여 값을 선택하면 사용 가능한 값의 중간에 목록이 표시됩니다. 이것은 바람직하지 않은 행동입니다. 상단의 목록에 첫 번째 값이 표시되어야합니다!

답변

0

글쎄요, 상자 밖의 콤보 박스 (다른 콤보 박스는 드롭 다운 컨트롤이 내장되어 있지 않습니다)가 다른 MS 기술의 콤보 박스 컨트롤처럼 작동 할 수 있다고 생각합니다. 물론 이것은 MS입니다. , 왜 일들이 일관성을 가져야 만 하는가? 여하튼 나는 "빈"항목을 만들고 VM의 값이 비어있는 경우 해당 항목을 미리 선택해야하며 "빈 항목"이 있으면 무시하도록 해당 속성의 설정자에 코드를 작성합니다 선택된. 그것은 kludgy 및 코드 냄새의 wreaks,하지만 작동

0

SelectedItem 속성을 개체로 설정하면 ComboBox는 해당 개체를 목록에서 현재 선택된 개체로 만듭니다. 목록에있는 개체는 ComboBox의 편집 부분에 표시되고 SelectedIndex 속성은 해당 색인으로 설정됩니다. 개체가 목록에 없으면 SelectedIndex 속성은 현재 값으로 유지됩니다.

+0

그래서이 콤보 상자는 ViewModel을 통해 데이터 바인딩됩니다. 이 경우 ViewModel에는 특정 속성에 대한 값 (빈 문자열)이 없으므로 Combobox는 비어있는 것으로 표시됩니다. 이는 좋고 바람직합니다. 콤보 박스를 클릭하여 값을 선택하면 사용 가능한 값의 중간에 목록이 표시됩니다. 이것은 바람직하지 않은 행동입니다. 상단의 목록에 첫 번째 값이 표시되어야합니다! – Shaggy13spe

+0

Combobox의 click 이벤트에서 SelectedItem 속성을 적용 할 수 있습니까? – Lyle

+0

무엇으로 선정 되었습니까? 내가 선택하지 않은 경우 선택을 미리 선택하고 싶지 않습니다. 그 이유는 데이터를 변경하기 때문입니다. – Shaggy13spe