Bonjour,

Je suis sur un projet pour mon entreprise qui utilise le WPF et des tâches trèèèèèès longues... j'aurai besoin d'un éclaircissement sur l'utilisation des delegates avec WPF.

J'ai une seule fenêtre (appelée MainWindow) et un module (donc un fichier) séparé contenant des fonctions. Comment accéder aux contrôles de la fenêtre par un delégué depuis le module ?

Le code de ma fenètre (j'appelle SaisieSerie par un bouton) :

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
Sub SaisieSairie()
        Label1.Content = "Rentrez le numéro de série du produit"
        Dim pattern As String = "^\d{6}\-\d{1,5}\-\d{4}$"
 
        If Regex.IsMatch(TextBox1.Text, pattern) Then
            numeroSerie = TextBox1.Text
            Enable()
            press = 0
            ChoixInterface()
            System.Threading.ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback(AddressOf InitSecondPart))
        Else
            MessageBox.Show("Numéro de série incorrect", "Erreur")
 
        End If
    End Sub
et voici le code de mon module :

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
 
    Delegate Sub dEcrireCA(ByVal VCA As Double, ByVal TCA As Double)
 
    Dim Wnd As MainWindow
 
    Sub EcrireCA(ByVal VCA As Double, ByVal TCA As Double)
 
        Wnd = Application.Current.MainWindow
        Wnd.TBVCA.Text = VCA.ToString
        Wnd.TBTCA.Text = TCA.ToString
    End Sub
 
    'Test du courant d'appel de la platine
    Sub TestCourantAppel()
 
        Dim d As New dEcrireCA(AddressOf EcrireCA)
 
        [...]
 
        'Attente mesure renvoyée par l'oscillo
        Measurement_CA(TCAP, VCAP)
 
        Wnd.Dispatcher.BeginInvoke(d, VCAP, TCAP)
        [...]
    End Sub
Mon problème est que le programme me sort une exception "La référence d'objet n'est pas défini etc..."

P.S. : J'ai enlevé le code inutile qui fonctionne dans le module.

Merci d'avance...