Pregunta

Estoy usando LINQ a SQL clases en mi WCF. Estas clases son devueltos a partir de los métodos de WCF al Silverlight. Ahora, quiero agregar una propiedad personalizada en un (lado Silverlight) la clase generada y desencadenar una PropertyChangedEvent en esa propiedad en particular, sobre la base de otra PropertyChangedEvent de otra propiedad. Para que quede claro, aquí hay un trozo de código que no funciona:

    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

El problema es que el código en Nueva () nunca se ejecuta, así que nunca se sabe cuando se cambia el ConnectionType, así que no puedo activar el PropertyChanged en ConnectionTypeEnum. (Esta propiedad se utiliza un solo sentido en la unión de modo que lo necesito)

¿Alguien tiene una solución para esto?

Gracias

¿Fue útil?

Solución

Se puede utilizar OnDeserializedAttribute

<OnDeserializedAttribute()> _
Public Sub WhenDeserialized(context As StreamingContext)
    AddHandler Me.PropertyChanged, AddressOf _PropertyChanged
End Sub
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top