Untuk proyek yang ditulis dalam VB.net saya ingin menggunakan kelas PropertyChangeNotifier
dari artikel ini, setidaknya saya ingin mencobanya jika dapat membantu.
Karena kelas asli ditulis dalam C#, saya mencoba menerjemahkan kelas ini ke VB.net, tetapi ada satu fungsi yang tidak dapat saya kompilasi dan saya tidak tahu mengapa, mungkin Anda bisa membantu.
Fungsi asli di C# adalah:
private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
PropertyChangeNotifier notifier = (PropertyChangeNotifier)d;
if (notifier.ValueChanged != null)
notifier.ValueChanged(notifier, EventArgs.Empty);
}
Terjemahan saya (yang sedikit diubah) (dan terjemahan otomatis beberapa situs web) adalah:
Private Shared Sub OnPropertyChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim notifier As PropertyChangeNotifier
notifier = TryCast(d, PropertyChangeNotifier)
If (notifier Is Nothing) Then
Exit Sub
End If
RaiseEvent notifier.ValueChanged(notifier, EventArgs.Empty)
End Sub
Jika saya menghapus RaiseEvent
, kompiler memberi tahu saya, bahwa ValueChanged
adalah sebuah acara dan tidak dapat dipanggil secara langsung, saya harus menggunakan RaiseEvent
. Tetapi ketika saya menggunakan RaiseEvent
, kompiler memberi tahu saya
'pemberitahuan' tidak dideklarasikan. Ini mungkin tidak dapat diakses karena tingkat perlindungannya.
Tapi seperti yang Anda lihat, notifier
dideklarasikan dalam beberapa baris.
RaiseEvent notifier.ValueChanged(notifier, EventArgs.Empty)
menjadiRaiseEvent ValueChanged(notifier, EventArgs.Empty)
- person Anu6is   schedule 12.10.2019ValueChanged
adalah acara non-statis dari kelasPropertyChangeNotifier
. - person Nostromo   schedule 12.10.2019