Bonjour à tous,

J'ai créé une classe Client qui ressemble à cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
Imports System.Runtime.Serialization
 
<DataContract>
Public Class Client
    <DataMember(Name:="NomClient")>
    Property NomClient As String
 
    <DataMember(Name:="PrénomClient")>
    Property PrenomClient As String
 
    <DataMember(Name:="AdresseClient")>
    Property AdresseClient As String
 
    <DataMember(Name:="CodePostalClient")>
    Property CodePostalClient As String
 
    <DataMember(Name:="VilleClient")>
    Property VilleClient As String
 
    <DataMember(Name:="Interventions")>
    Property Interventions As Intervention
 
    Public Sub New(ByVal nomC As String, ByVal prenomC As String, ByVal adresseC As String, ByVal codePostalC As String, ByVal villeC As String, ByVal interventionC As Intervention)
        NomClient = nomC
        PrenomClient = prenomC
        AdresseClient = adresseC
        CodePostalClient = codePostalC
        VilleClient = villeC
        Interventions = interventionC
    End Sub
 
    Public Sub New()
 
    End Sub
 
 
End Class
Dans cette classe j'utilise une propriété Intervention qui est de type Intervention (qui est une classe dont le code est ci après) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Public Class Intervention
    Property dateIntervention As Date
    Property detailIntervention As String
    Public Sub New(ByVal dateI As Date, ByVal detailI As String)
        dateIntervention = dateI
        detailIntervention = detailI
    End Sub
 
    Public Sub New()
 
    End Sub
End Class
Ma première question est la suivante :
Est ce la bonne méthode pour faire cela ?

La deuxième question concerne l'utilisation de ces classes.

J'ai une liste de client qui s'affiche.
J'aimerais, que quand je clique sur un item de cette liste (un client donc), qu'une autre liste des interventions se remplisse avec les interventions de ce client.

Voici le code que j'ai pour le moment et qui ne fonctionne pas bien entendu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Private Sub listClient_ItemClick(sender As Object, e As ItemClickEventArgs) Handles listClient.ItemClick
        selectionClient = DirectCast(e.ClickedItem, Client)
        Dim nomC = selectionClient.NomClient
        Dim prenomC = selectionClient.PrenomClient
        Dim adresseC = selectionClient.AdresseClient
        Dim codePostalC = selectionClient.CodePostalClient
        Dim villeC = selectionClient.VilleClient
 
        If selectionClient.Interventions Is Nothing Then
            btnAjoutIntervention.Visibility = Visibility.Visible
        Else
            listIntervention.ItemsSource = Nothing
            listIntervention.ItemsSource = selectionClient.Interventions
        End If
 
    End Sub
Dans le cas où aucune interventions n'a été réalisé je fais apparaitre un bouton qui me permet d'en rajouter une.
Mais je suis aussi bloqué sur l'ajout de cette intervention.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 Private Sub btnValiderIntervention_Click(sender As Object, e As RoutedEventArgs)
        Dim index = clients.IndexOf(listClient.SelectedItem)
        Dim intervention = New Intervention() With {
            .dateIntervention = textDate.Text,
            .detailIntervention = textDetail.Text}
 
 
        selectionClient.Interventions = intervention
 
        clients.Insert(index, selectionClient)
 
        SauvegarderClient()
 
        'listIntervention.ItemsSource = Nothing
        'listIntervention.ItemsSource = selectionClient.Interventions
 
    End Sub
J'aimerais un coup de pouce concernant mon soucis.

Je vous remercie par avance pour votre aide.