我試圖設置一個TwoWay綁定到組合框只使用集合的對象的選擇。目前,如果我只想綁定所有內容,但在下面的示例類中,如果我只想顯示Active = True的項目,那麼一切正常。我可以使用LINQ來篩選項目,如ItemsSource = FROM x IN Coll WHERE x.Active = True,但是然後我失去了TwoWay綁定。即,如果源中的名稱或活動狀態是從其他位置更新的,則組合框不會自動更新。WPF使用僅集合的項目的子集綁定到一個組合
是可以做到的嗎?如果沒有,那麼有誰需要處理這個問題有一些建議?
'The Class
Public Class Test
Implements ComponentModel.INotifyPropertyChanged
Private _Name As String
Private _Active As Boolean
Public Sub New(Name As String, Active As Boolean)
_Name=Name
_Active=Active
End Sub
Public Property Name() As String
End Class
'Declare a Collection and add some Tests, then bind to Cbo in Page Load
Dim Coll As New ObservableCollection
Coll.Add(New Test("Test1", True))
Coll.Add(New Test("Test2", False))
Coll.Add(New Test("Test3", True))
TheComboBox.ItemsSource=Coll
是啊,我其實沒有自己試試吧,但我沒有穿過另一篇文章的地方,說是觀就失去了傳播的ChangeEvent運行。 但是,即使Views工作,我很感謝您瞭解Bindable LINQ。這對未來肯定會有很大的幫助。 謝謝馬特! – JoshKraker 2009-05-18 00:14:31