簡體   English   中英

WinRT XAML ComboBox在列表中間打開

[英]WinRT XAML ComboBox opens in middle of list

因此WinRT中XAML組合框的一種特殊行為使我非常頭疼,因為我的客戶將其視為缺陷,並且不在乎控件的行為,他希望更改它。 但是,我找不到任何可以更改的內容。 我說的是,當未選擇任何內容時,ComboBox彈出窗口打開,在列表中間顯示ItemsSource。 我列出了一些國家/地區,但美國,英國和加拿大除外。 這3個項目是最常選擇的項目,客戶希望它們位於頂部,而不必滾動列表來查找它們。 這很容易,但是由於列表在中間打開,因此您仍然需要滾動很多才能到達它們。 我缺少一些屬性來關閉此行為嗎? 我終於能夠說服他們,CarouselPanel並不是一個缺陷,但是這個缺陷不會實現。

提前致謝!

沒有選擇時列表在中間打開

更新:因此,此組合框是通過ViewModel進行數據綁定的。 在這種情況下,ViewModel沒有針對該特定屬性的值(它是一個空字符串),因此組合框顯示為空,這是很好並且很理想的。 當您單擊組合框選擇一個值時,它將在可用值的中間顯示列表。 這是不受歡迎的行為。 它應該在頂部列表中顯示第一個值!

當您將SelectedItem屬性設置為一個對象時,ComboBox會嘗試使該對象成為列表中當前選定的對象。 如果在列表中找到該對象,則該對象將顯示在ComboBox的編輯部分中,並且SelectedIndex屬性設置為相應的索引。 如果該對象在列表中不存在,則SelectedIndex屬性保留其當前值。

好吧,人們會認為現成的Combobox(沒有其他內置的下拉控件)可以像迄今為止任何其他MS技術中的任何其他combobox控件一樣工作,但是當然這是MS,所以為什么要事情要保持一致。 無論如何,我最終不得不創建一個“空白”條目,如果VM中的值為空,則必須預先選擇該項目,然后在該屬性的setter中編寫代碼,以忽略是否為“空白”項目已選擇。 這很笨拙,但有點代碼臭味,但是可以用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM