Binder un ListView à un CollectionView avec passage de parametre

Signaler
Messages postés
66
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
26 mars 2019
-
Bonjour,

J'ai un ListView bindé à un CollectionView...et j'aimerais faire passer un paramètre dans la construction.

Ce paramètre est la valeur de l'élément sélectionné d'un autre ListBox!

J'ai donc mon ListView avec un DataContext sur l'élément sélectionné d'une ListBox
<ListView DataContext="{Binding SelectedItem, ElementName=ListBox5}" ItemsSource="{Binding Source={StaticResource cvd}}" />


...et dont la source est une CollectionView

xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
<local:DatabaseList x:Key="databaselist"/>

<CollectionViewSource Source="{StaticResource databaselist}" x:Key="cvd">
    <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="Name"/>
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>


Voici le constructeur

Public Class DatabaseList
    Inherits ObservableCollection(Of DatabaseItems)
    Public Sub New()
        If File.Exists(value & ".xml") Then
            Dim sysdata As XmlDocument = New XmlDocument()
            sysdata.Load(value & ".xml")
            Dim root As XmlElement = sysdata.DocumentElement
            Dim nodes As XmlNodeList = root.SelectNodes("start")
            For Each node As XmlNode In nodes
                MyBase.Add(New DatabaseItems(node.Attributes("name").Value, node("description").InnerText))
            Next
        End If
    End Sub
End Class


...j'utilise ici pour l'exemple une variable 'value' qui symbolise le paramètre que je voudrais bien faire passer au constructeur.



Donc, en résumé: Un ListView se lie à un CollectionView dont le constructeur utilise un paramètre passé par le ListView (et qui est l'élément sélectionné d'un ListBox)



J'espère que je suis assez clair ;-) et je vous remercie d'avance pour l'aide que vous voudrez bien m'apporter!!