locked
Как правильно организовать уведомление об изменениях в классе RRS feed

  • Общие обсуждения

  • У меня есть два класса:
    Imports System.ComponentModel
    
    Public Class classA
        Implements INotifyPropertyChanged
    
        ' "INotifyPropertyChanged Members"
        Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    
        Private Sub NotifyPropertyChanged(ByVal info As String)
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
        End Sub
    
        Private _a As Integer
        Private _b As Integer
        Private _isWithObjB As Boolean
        Private _c As classB
    
        Public Property A As Integer
            Get
                Return Me._a
            End Get
            Set(value As Integer)
                If Not (value = Me._a) Then
                    Me._a = value
                    NotifyPropertyChanged("A")
                End If
            End Set
        End Property
    
        Public Property B As Integer
            Get
                Return Me._b
            End Get
            Set(value As Integer)
                If Not (value = Me._b) Then
                    Me._b = value
                    NotifyPropertyChanged("B")
                End If
            End Set
        End Property
    
        Public Property IsWithObjB As Boolean
            Get
                Return Me._isWithObjB
            End Get
            Set(value As Boolean)
                If Not (value = Me._isWithObjB) Then
                    Me._isWithObjB = value
                    NotifyPropertyChanged("IsWithObjB")
                End If
            End Set
        End Property
    
        Public Property C As classB
            Get
                Return Me._c
            End Get
            Set(value As classB)
                Me._c = value
            End Set
        End Property
    End Class
    
    Imports System.ComponentModel
    
    Public Class classB
        Implements INotifyPropertyChanged
    
        ' "INotifyPropertyChanged Members"
        Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    
        Private Sub NotifyPropertyChanged(ByVal info As String)
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
        End Sub
    
        Private _a As Integer
        Private _b As Integer
    
        Public Property A As Integer
            Get
                Return Me._a
            End Get
            Set(value As Integer)
                If Not (value = Me._a) Then
                    Me._a = value
                    NotifyPropertyChanged("A")
                End If
            End Set
        End Property
    
        Public Property B As Integer
            Get
                Return Me._b
            End Get
            Set(value As Integer)
                If Not (value = Me._b) Then
                    Me._b = value
                    NotifyPropertyChanged("B")
                End If
            End Set
        End Property
    End Class
    У меня есть два вопроса. Первый, при установки св-ва IsWithObjB в True необходимо создавать новый объект для св-ва С класса classA, корректно ли это делать в методе Set св-ва IsWithObjB? Второй, при изменение свойств обоих классов генерируются события уведомляющие об этом, как огранизовать генерацию такого же уведомление для св-ва C класса classA, если устанавливать значения следующим образом:
    Sub Main()
      Dim a As New classA
      a.C.A = 10
    End Sub
    в самом classB события генерируются, но как правильно сгенерировть такое событие в классе classA, информирующее о том, что изменилось св-во C?


    13 февраля 2014 г. 12:32

Все ответы

  • Я не пойму, я вопросы сформулировал не достаточно понятно?

    • Изменено YatajgaEditor 19 февраля 2014 г. 15:06 OffTop
    14 февраля 2014 г. 13:07
  • Вы абсолютно правы в первом своём предположении. Хочется повторить вопрос профессора Преображенского: "Кто на ком стоял?" :) Да, и с грамматикой и орфографией русского языка, чувствуется, большие проблемы.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    14 февраля 2014 г. 21:57
  • Вы абсолютно правы в первом своём предположении.
    А после второго предположения вникать в вопрос совершенно отпало желание...

    VB.Net - WPF, WinRT, WP

    19 февраля 2014 г. 14:41
    Отвечающий
  • Пожалуйста, имейте терпение. Это вам не техподдержка. Заняты люди, как появляется свободное время, стараемся. И старайтесь вести себя прилежно, чтобы не отпало желание отвечать.

    Сделаем содержимое сообщества лучше, вместе!

    19 февраля 2014 г. 15:09
    Модератор
  • Отвечать нет неоходимости, так как решение уже найдено!

    • Изменено YatajgaEditor 19 февраля 2014 г. 15:41 Цензура
    19 февраля 2014 г. 15:39