我有一個TreeView與各種項目。項目的樣式使IsSelected屬性綁定到我的虛擬機到一個布爾IsSelected。TreeViewItem isSelected被激發兩次
無論何時單擊一個樹形視圖項目,該VM屬性將被調用兩次,首先使用值== false然後使用值== true。
我認爲這是一個正常的行爲,但我不知道爲什麼,因爲我有IsExpended屬性以相同的方式綁定,並且只調用一次。
感謝
我有一個TreeView與各種項目。項目的樣式使IsSelected屬性綁定到我的虛擬機到一個布爾IsSelected。TreeViewItem isSelected被激發兩次
無論何時單擊一個樹形視圖項目,該VM屬性將被調用兩次,首先使用值== false然後使用值== true。
我認爲這是一個正常的行爲,但我不知道爲什麼,因爲我有IsExpended屬性以相同的方式綁定,並且只調用一次。
感謝
我懷疑的原因是,當你選擇一個項目,首先將舊項目被取消選中,那麼新的項目被選中。這會導致第一次調用false,第二次調用true。
也許在調試時,檢查視圖模型上的DisplayName或類似屬性,以查看每次修改哪些項目,以查看是否確實如此。
同樣,當您展開節點時,不需要摺疊任何其他節點。因此,它只是展開您試圖展開的節點(對於IsExpanded傳遞true)。
原因是冒泡事件。
當事件發生時,它會「冒泡」直到它處理完畢。
您可以通過選擇第三級項目進行驗證。
你只需要設置e.Handled = true
;
Ofir
DUH !!謝謝 !!! – Pacman 2011-02-25 22:54:01