J'essaie de définir une liaison TwoWay à une zone de liste déroulante en utilisant uniquement une sélection d'objets d'une collection. Actuellement, tout fonctionne bien si je veux juste lier tout dans la colelction, mais dans la classe exemple ci-dessous, que se passe-t-il si je veux seulement montrer des éléments où Active = True? Je peux filtrer les éléments en utilisant LINQ comme ItemsSource = FROM x IN Coll WHERE x.Active = True mais je perds la liaison TwoWay. C'est-à-dire que si le nom ou l'état actif de la source est mis à jour ailleurs, la liste déroulante ne se met pas automatiquement à jour.WPF Liaison à un combo en utilisant uniquement un sous-ensemble d'éléments d'une collection
Est-ce que c'est possible? Sinon, est-ce que quelqu'un qui a eu à faire avec cela a des suggestions?
'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
Oui, je ne l'ai pas essayé en fait moi-même, mais je ne courir à travers un autre poste quelque part dit que la vue va perdre la propagation ChangeEvent. Cependant, même si Views a bien fonctionné, je suis reconnaissant d'en savoir plus sur Bindable LINQ. Ce sera certainement une aide précieuse pour l'avenir. Merci Matt! – JoshKraker