1

WCFでLinqtoSQLクラスを使用しています。これらのクラスは、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 に答える