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émentantmais rien n'y fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part INotifyPropertyChanged
Ci dessous mes bouts de codes :
Chargement de la page :
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
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
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 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
Objets StackupDimensions :
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 StackupDimension :
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
Merci d'avance pour vos lumières !
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
Partager