في Silverlight ، أضف خاصية مخصصة إلى فئة LINQ التي تم إنشاؤها + إدارة الأحداث

StackOverflow https://stackoverflow.com/questions/4345991

سؤال

أنا أستخدم فصول 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top