我想創建一個行爲,其中ComboBox
下拉關閉時失去焦點。 我的第一個嘗試是:WPF組合框:如何知道項目容器(何時打開)失去焦點
public class ComboBoxLostFocusBehavior : Behavior<ComboBox> {
protected override void OnAttached() {
base.OnAttached();
AssociatedObject.LostFocus += (object sender, RoutedEventArgs e) => AssociatedObject.IsDropDownOpen = false;
}
}
但LostFocus事件僅僅指撥動一部分,而不是物品的容器。
我該如何參考下拉列表?
我想:當下拉列表失去焦點 - >下拉被關閉
編輯:
我認爲這個問題被誤解了。 ComboBox有兩個主要部分,它在關閉時看到的部分(讓我們稱它爲A)和下拉列表(讓它稱爲B)。 LostFocus僅指A部分。因此,在我提出的問題中,這是錯誤的,您打開下拉列表,將鼠標從A移動到B,並且當剛離開A併到達B時,B被關閉(通過行爲)。所以總結一下,LostFocus是一個錯誤的路要走,我正在尋找其他的東西來暗示下拉(B)失去了焦點。
你的意思是什麼時候關閉下拉菜單?或者當下拉菜單關閉時?或者當下拉菜單被打開並且失去了使其關閉的焦點? – pushpraj 2014-09-02 13:11:44
下拉式關閉時,我認爲它不能成爲焦點。所以,當下拉打開並失去焦點時。如何捕捉這個? – Keren 2014-09-02 13:14:09
您應該使用SelectionChanged。 你需要在LostFocus上做什麼? – 2014-09-03 10:04:56