1

我在 WCF 中使用 Linq to SQL 类。这些类从 WCF 方法返回给 Silverlight。现在,我想在生成的类(Silverlight 端)上添加一个自定义属性,并根据来自另一个属性的另一个 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什么时候改变,所以我无法触发ConnectionTypeEnum上的PropertyChanged。(此属性用于单向绑定,所以我需要它)

有人对此有解决方案吗?

谢谢

4

1 回答 1

2

您可以使用OnDeserializedAttribute

<OnDeserializedAttribute()> _
Public Sub WhenDeserialized(context As StreamingContext)
    AddHandler Me.PropertyChanged, AddressOf _PropertyChanged
End Sub
于 2010-12-03T14:25:46.017 回答