Bonjour à tous,

Je cherche a réaliser un databinding sur un objet perso.

Mon problème est le suivant : Lorsque je change mes valeurs par du code (en ouvrant un fichier perso) l'affichage dans mon Control (Datagridview) ne se met pas à jour

J'ai essayé en implémentant mais rien n'y fait

Ci dessous mes bouts de codes :

Chargement de la page :

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
    Public MaStackup As New StackupClass
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        Dim MyFile As New OpenFileDialog
        Dim Rep = MyFile.ShowDialog
 
        If File.Exists(MyFile.FileName) Then
 
            Dim myFileStream As Stream = File.OpenRead(MyFile.FileName)
            Dim deserializer As New BinaryFormatter()
            MaStackup = CType(deserializer.Deserialize(myFileStream), StackupClass)
            myFileStream.Close()
        End If
 
        DataGridView1.DataBindings.Add(New Binding("Datasource", MaStackup, "Dimensions") With {.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged})
 
    End Sub
Ouverture d'un nouveau fichier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
   Private Sub ButtonOuvrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOuvrir.Click
 
        Dim MyFile As New OpenFileDialog
        Dim Rep = MyFile.ShowDialog
 
        If File.Exists(MyFile.FileName) Then
            Dim myFileStream As Stream = File.OpenRead(MyFile.FileName)
            Dim deserializer As New BinaryFormatter()
            MaStackup = CType(deserializer.Deserialize(myFileStream), StackupClass)
            myFileStream.Close()
        End If
 
    End Sub
Objet StackupClass :

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
<Serializable()> Public Class StackupClass
 
    Implements INotifyPropertyChanged
 
    <NonSerialized()> Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
 
    Private _Dimensions As StackupDimensions
    Public Property Dimensions() As StackupDimensions
        Get
            Return _Dimensions
        End Get
        Set(ByVal value As StackupDimensions)
            _Dimensions = value
        End Set
    End Property
 
 
    Private Sub OnPropertyChanged(ByVal propertyName As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
    End Sub
 
 
 
 
End Class
Objets StackupDimensions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Serializable()> Public Class StackupDimensions
    Inherits List(Of StackupDimension)
    Implements INotifyPropertyChanged
 
    Private Sub OnPropertyChanged(ByVal propertyName As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
    End Sub
 
    Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
End Class
Objets StackupDimension :

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
<Serializable()> Public Class StackupDimension
    Implements INotifyPropertyChanged
    Private Sub OnPropertyChanged(ByVal propertyName As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
    End Sub
 
    Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
 
    Private _Name As String
    Private _NominalValue As Decimal
 
    Public Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal value As String)
            _Name = value
        End Set
    End Property
 
    Public Property NominalValue() As Decimal
        Get
            Return _NominalValue
        End Get
        Set(ByVal value As Decimal)
            _NominalValue = value
        End Set
    End Property
End Class
Merci d'avance pour vos lumières !