我正在使用組合框控件的WPP應用程序,我正在分配ItemsSource它。因此,它顯示了沒有選擇項目的項目列表,現在用戶可以選擇他選擇的項目。當用戶做出選擇時,他沒有選擇撤銷該選項。我希望他能夠獲得沒有選擇項目的初始狀態。我怎樣才能做到這一點?在下拉菜單中的默認文本
2
A
回答
1
在windows窗體編程中也有類似的多種方式。您可以執行以下任一操作:
1)將空白或--None--記錄添加到作爲默認記錄的ComboBox數據源中。 2)您可以監控按鍵事件,並說使用ESC鍵將選定的索引重置爲-1。
3)如果你的組合框允許輸入,你也可以允許它們清除文本,並且如果文本框爲空,則將onleave設置爲-1,這樣它就不會重置爲選定的值。
我的用戶更喜歡選項1,但這是我的用戶。
這應該給你一些選擇。
1
我會去重置回默認空白記錄(索引爲-1) - 無記錄每次。如果您正在處理「選擇已更改」的事件或ComboBox上的某些事件,那麼如果將對話框指向-1,則可能會出現空引用錯誤,並且這很容易,因爲您必須設置的唯一更改已設置選擇的索引爲(比如說)0而不是-1。
myComboBox.SelectedIndex = 0; //where 0 is a given default content entry.
1
一般來說,我發現,如果我需要的複雜性添加到一個WPF應用程序,將其添加到數據源是不是將它添加到XAML更穩健。
在你的例子中,我會在我的數據源中解決這個問題。如果我有:
public IEnumerable<Person> People { get {...} }
在我的數據源
,我想補充一點:
public IEnumerable<Person> PeopleWithNull
{
get
{
return (new List<Person> { null }).Concat(People);
}
}
相關問題
- 1. 下拉菜單中的默認值
- 2. MVC 3默認值在下拉菜單
- 3. 設置默認值時不顯示下拉菜單文本 - AngularJS
- 4. 默認的「--- Select--」不會在按下按鈕時加載下拉菜單下拉式下拉菜單
- 5. 如何在Django中設置下拉菜單的默認值?
- 6. 下拉菜單是從我的JSON文件,而不是默認的文本
- 7. RichTextEdit的默認上下文菜單?
- 8. 如何在下拉菜單中指示默認值
- 9. 如何在下拉菜單中設置默認值?
- 10. 防止用戶在下拉菜單中選取默認值
- 11. 在下拉菜單中修改默認值
- 12. 在下拉菜單中設置默認可見分區
- 13. 默認選擇不在下拉菜單中顯示
- 14. SQL:數據庫中的下拉菜單的默認值
- 15. 上下文菜單默認值
- 16. 設置表單選項作爲默認的下拉菜單
- 17. 將菜單項添加到默認的上下文菜單
- 18. 下拉菜單默認選項全部選中
- 19. 如何從下拉菜單中選擇一個默認值
- 20. 本地化TextField的默認上下文菜單
- 21. 本地化鏈接標籤的默認上下文菜單
- 22. 用javascript中的文本菜單替換下拉菜單
- 23. 網頁上的下拉菜單的默認值
- 24. 定義類變量的下拉菜單的默認值
- 25. 顯示下拉菜單的jQuery自動完成的默認值?
- 26. 刪除默認的上下文菜單編輯在DataGridView中
- 27. 下拉菜單上的重疊文本
- 28. 文本後面的下拉菜單
- 29. 帶有默認空白選項的ASP.NET MVC下拉菜單
- 30. 的Oracle APEX下拉菜單4.2設置值默認
我用第一種方式,但早在這種情況下,假設我的組合框具有人的列表類型分配給其ItemsSource,並將DisplayMemberPath設置爲People類型的Name屬性。那麼我需要添加名稱爲「沒有選擇」的列表中的人員對象。是不是有一種方法,我可以直接在組合框以及我的其他People對象中命名爲「No Select」。 – viky 2009-11-24 15:06:44
我沒有找到這個鏈接http://www.blueedge.nl/weblog/post/Nullable-ComboBox-in-Silverlight.aspx這就是你所要求的。可能會有點小,但它可以做與1號相同的事情,而無需手動添加空白記錄。該解決方案看起來應該運行良好。大聲笑,我甚至可以適應自己的需要。除此之外,我必須同意網絡上的很多人,除了添加虛擬記錄來實現您所尋找的內容之外,沒有太多內容。所以除此之外,我會推薦其中一種按鍵/文本監視解決方案。 – 2009-11-27 15:30:51