我试图设置一个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