1

いくつかのパブリックプロパティ(Dirty:booleanなど)とそのプロパティを変更するイベント(ControlValueChanged)を持つユーザーコントロールがあります。
そのコントロールをフォームに追加しました。フォームにボタン(btnOK)があり、ボタンのEnabledプロパティをDirtyプロパティにバインドしたいと思います。http://msdn.microsoft.com/en-us/library/ms229614.aspx
を読みましたが、これをプロジェクトに実装する際にいくつかの問題に直面しています。 次の形式の私のコード:

btnOK.DataBindings.Add("Enabled", Me.wwdp, "Dirty") 'wwdp is my user Control

したがって、私の調査から、カスタムコントロールを追加する必要があります。

Imports System.ComponentModel

Public Class wwDynamicPanel

Implements INotifyPropertyChanged

Public Event PropertyChanged As PropertyChangedEventHandler _
    Implements INotifyPropertyChanged.PropertyChanged


 Public Property Dirty As Boolean
    Get
        Return mbDirty
    End Get
    Set(ByVal value As Boolean)
        mbDirty = value
        NotifyPropertyChanged()
    End Set

End Property

Private Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing)
    RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub

エラーが発生します:タイプ'CallerMemberName'が定義されていません。
問題は、msdnでこれ以上何も見つからなかったということです。

4

1 に答える 1

4

大変申し訳ございません。MSDNのリンクはフレームワーク4.5用でした。正しいhttp://msdn.microsoft.com/en-us/library/ms184414(v=vs.100).aspx
を見つけました。私のフレームワークのために、私は問題を解決しました。 他の誰かがそれが役に立つと思うので、私は質問を残しています。 したがって、動作するコードは次のとおりです。

Imports System.ComponentModel

Public Class wwDynamicPanel

Implements INotifyPropertyChanged

Public Event PropertyChanged As PropertyChangedEventHandler _
   Implements INotifyPropertyChanged.PropertyChanged


Public Property Dirty As Boolean
   Get
      Return mbDirty
   End Get
   Set(ByVal value As Boolean)
      mbDirty = value
      NotifyPropertyChanged("Dirty")
   End Set
End Property

Private Sub NotifyPropertyChanged(ByVal info As String)
     RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
于 2012-11-02T14:56:15.490 に答える