В Silverlight добавьте пользовательское свойство в сгенерированный класс Linq + управляйте событиями - PullRequest
1 голос
/ 03 декабря 2010

Я использую классы Linq to SQL в своем WCF. Эти классы возвращаются из методов WCF в Silverlight. Теперь я хочу добавить пользовательское свойство в сгенерированный класс (сторона Silverlight) и вызвать PropertyChangedEvent для этого конкретного свойства на основе другого PropertyChangedEvent из другого свойства. Чтобы было ясно, вот фрагмент кода, который не работает: <pre> Partial Public Class DataConnection<br> Public Sub New() AddHandler Me.PropertyChanged, AddressOf _PropertyChanged End Sub</p> <pre><code> 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 для ConnectionTypeEnum. (это свойство используется в односторонней привязке, поэтому оно мне нужно)

У кого-нибудь есть решение для этого?

Спасибо

1 Ответ

2 голосов
/ 03 декабря 2010

Вы можете использовать OnDeserializedAttribute

<OnDeserializedAttribute()> _
Public Sub WhenDeserialized(context As StreamingContext)
    AddHandler Me.PropertyChanged, AddressOf _PropertyChanged
End Sub
...