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
1 2 3 4 5 6 7 8
| 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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!!
Partager