harmlos77 Ответов: 0

Добавить событие с отражением на setmethod


Вот пример 2 класса:
Public NotInheritable Class test
        Inherits ObjectBase

        Private _Name As System.String

        Public Property [Name] As System.String
            Set(value As System.String)
                If _Name <> value Then
                    _Name = value
                    NotifyPropertyChanged()
                End If
            End Set
            Get
                Return _Name
            End Get
        End Property
End Class

Public MustInherit Class ObjectBase
        Implements INotifyPropertyChanged

        Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged

        Public Sub NotifyPropertyChanged(Optional ByVal propertyName As String = Nothing)
                RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
            End If
        End Sub
End Class

Проблема: в каждом классе в наборе свойств я должен написать " NotifyPropertyChanged ()". Теперь я ищу решение в классе " ObjectBase "(с отражением), которое вызывает" NotifyPropertyChanged () "после установки значения для каждого свойства в классе"test".
Идея состоит в том, чтобы создать подменю "New" в классе "Objectbase", которая добавит эту функцию для каждого свойства.

Что я уже пробовал:

В классе "Objectbase" я должен создать суб "new" и создать простой массив "SQLParameters" для класса с отражением:
Private SqlParameters As List(Of SqlParameter) = New List(Of SqlParameter)

Sub New()
    For Each _PropertyInfo As System.Reflection.PropertyInfo In Me.GetType.GetProperties
            For Each _Attribute As System.Attribute In System.Attribute.GetCustomAttributes(_PropertyInfo)
                    Dim _DatabaseColumn As DATABASE.Field = CType(_Attribute, DATABASE.Field)
                    SqlParameters.Add(New SqlParameter("@" & _DatabaseColumn.Name, _DatabaseColumn.SqlDbType))
            Next
    Next
End Sub

Это работает, но я понятия не имею, чтобы добавить событие после набора для каждого свойства?!?!?

0 Ответов