在Silverlight組合框上,當您打開下拉列表時,SelectionChanged事件不會觸發,然後單擊當前選定的項目。發生這種情況時,觸發事件/方法的最佳方式是什麼? (除了通常會觸發SelectionChanged的任何事情,即他們或者單擊未選定的或選定的項目;但不是當他們剛剛點擊下拉菜單時)
我目前已經爲列表中的項目設置了DataTemplates。我嘗試附加到那些元素的MouseLeftButtonUp事件中,但是項目周圍有空白,所以它不總是註冊一個關閉組合框並單擊項目的點擊。Silverlight組合框選擇已更改或重新選擇事件
-1
A
回答
1
你有沒有考慮過「DropDownClosed」事件?
0
我知道自從上次評論以來已經很長時間了,但是我會發布我的解決方案,以防有人遇到同樣的問題。 只有這樣,我成功地「重新選擇」當前選擇的項目是修改這樣的ComboBoxItemTemplate:
<Style TargetType="ComboBoxItem">
....
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Grid ... MouseLeftButtonDown="Grid_MouseLeftButtonDown">
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
現在,在Grid_MouseLeftButtonDown事件我取消對當前項目;然後像往常一樣處理鼠標點擊,選擇鼠標光標下的元素。
相關問題
- 1. 已選擇項目更改組合框
- 2. WPF組合框選擇更改TabItem選擇更改
- 3. DataGridView ComboBox列選擇已更改事件
- 4. 選擇的Flex DropDown事件已更改
- 5. 取消選擇Silverlight TreeViewItem重新選擇
- 6. JS jQuery UI的組合框中選擇更改事件
- 7. 使用選定值(C#WPF)時選擇更改之前組合框選擇更改事件觸發
- 8. Silverlight組合框強制重新選擇SelectedItem
- 9. 從組合框中選擇並重新選擇
- 10. 選擇組合框時的事件
- 11. 組合框中的Silverlight默認選擇
- 12. 選擇重新加載並更改其他選擇框的值
- 13. 綁定ischecked選擇wpf列表框中的複選框已更改組合框
- 14. 更改事件觸發的選擇框
- 15. setTimeout在選擇框更改事件
- 16. jquery可見選擇框更改事件
- 17. Silverlight DataGrid顯示或隱藏選擇組合框的控件
- 18. 選擇更改事件
- 19. 選擇在更改事件
- 20. 更新選擇框後的另一種選擇框更改
- 21. 更改選擇框
- 22. WPF組合框 - 在綁定字段的setter改變選擇 - 組合框選擇不更新
- 23. 更新選擇框選項
- 24. 基於事先選擇的組合框選擇
- 25. Combobox選擇更改事件觸發器,甚至沒有改變組合框中的選擇
- 26. 更新選擇案件與新的組合框項目
- 27. Backbone.js - 更新選擇更改集合
- 28. 當組合框中的選擇更改時,DataGridView中的提交已更改
- 29. 樞軸選擇已更改
- 30. 爲什麼文本更改組合框中選擇更改
是的,我已經考慮過了。問題在於,當您打開下拉菜單並點擊下拉菜單之外時,它也會觸發。下拉菜單關閉,所以當然會觸發,但用戶實際上沒有點擊目前選擇的項目,他們沒有選擇,所以我不想像他們那樣行事。 – 2011-06-02 20:30:42
嗯,它似乎是一個混亂的東西,如果該項目目前選擇然後我wouldnt再次選擇它..所以這正是什麼Id做的。你可以有一個布爾,selection_made = false,打開下拉列表,將其設置爲yes,如果鼠標關閉,如果在dropdownclosed,它已被設置,然後使用當前選擇的項目..但它很凌亂 – BugFinder 2011-06-02 20:37:14
嗯,是的有點凌亂,但我會明天嘗試,如果沒有更好的建議出現。 – 2011-06-02 22:29:34