我使用的XCeed CheckComboBox:https://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox&referringTitle=HomeCheckComboBox設置屬性不起作用
在我的組合框也有一些類型。所有類型都在組合框中正確列出。我的問題是,如果我取消選中某個項目,則不會調用IsFiltered
的設置屬性:
我使用的XCeed CheckComboBox:https://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox&referringTitle=HomeCheckComboBox設置屬性不起作用
在我的組合框也有一些類型。所有類型都在組合框中正確列出。我的問題是,如果我取消選中某個項目,則不會調用IsFiltered
的設置屬性:
大多數以MemberPath
結尾的字段正在查找包含屬性名稱的字符串。
在你的情況,你需要
ValueMemberPath="IsFiltered"
,而不是
ValueMemberPath="{Binding IsFiltered, Mode=TwoWay}
現在它看到自己的數據對象上稱爲IsFiltered
會告訴它使用什麼屬性名字符串屬性Value
,因爲你的IsFiltered
是一個布爾,這是行不通的。
從文檔中,看起來好像沒有辦法讓組合框將複選框狀態綁定到項目屬性。相反,所選項目通過SelectedItems
屬性公開。您可以指定自己的集合來保存SelectedItemsOverride
所選的項目,因此將其綁定到IsFiltered
沒有任何意義。您可能需要做的事情是將SelectedItemsOverride
綁定到ObservableCollection<NapTypeItem>
並手動觀察集合的更改,並在選擇更改時更新項目的IsFiltered
屬性。
我覺得這個控件上的'ValueMemberPath'用來指定每個選擇的項目的子屬性,以包含在'SelectedValue'中。我不認爲它反映了選擇狀態,即該項目是否被檢查。 – 2014-10-28 14:17:41
@MikeStrobel你可能是對的。我被「ValueMemberPath」的錯誤使用立即發現,並沒有考慮到可能存在與「CheckedComboBox」的設計和使用有關的其他問題。我之前沒有使用過XCeed的控件,所以我不確定它們是如何工作的。 – Rachel 2014-10-28 14:45:44