في Silverlight ، أضف خاصية مخصصة إلى فئة LINQ التي تم إنشاؤها + إدارة الأحداث
-
30-09-2019 - |
سؤال
أنا أستخدم فصول LINQ إلى SQL في WCF الخاص بي. يتم إرجاع تلك الفصول من أساليب WCF إلى Silverlight. الآن ، أريد إضافة خاصية مخصصة على الفئة التي تم إنشاؤها (Silverlight Side) وأؤيد PropertyChangedEvent على تلك الخاصية بالذات ، استنادًا إلى PropertyChangedEvent من خاصية أخرى. لكي نكون واضحين ، إليك قطعة رمز لا تعمل:
Partial Public Class DataConnection
Public Sub New()
AddHandler Me.PropertyChanged, AddressOf _PropertyChanged
End Sub
Private Sub _PropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs)
If e.PropertyName = "ConnectionType" Then
Me.RaisePropertyChanged("ConnectionTypeEnum")
End If
End Sub
Private _ConnectionTypeEnum As String
Public ReadOnly Property ConnectionTypeEnum() As String
Get
Select Case Me.ConnectionType
Return //Something based on ConnectionType //
End Select
End Get
End Property
End Class
تكمن المشكلة في أن الكود في New () لم يتم تنفيذه أبدًا ، لذلك لا أعرف أبدًا متى يتم تغيير ConnectionType ، لذلك لا يمكنني تشغيل PropertyChanged on ConnectionTypeenum. (يتم استخدام هذه الخاصية في ربط في اتجاه واحد لذلك أحتاج إليها)
هل لأحد حل لهذا ؟
شكرًا
المحلول
يمكنك استخدام ondeserializedattribute
<OnDeserializedAttribute()> _
Public Sub WhenDeserialized(context As StreamingContext)
AddHandler Me.PropertyChanged, AddressOf _PropertyChanged
End Sub
لا تنتمي إلى StackOverflow