我写了个dll,其中定义了一个类,实现了inotifypropertychanged接口,其中有个propertychanged事件,当我做了一个wpf用一个textbox绑定到这个类的实例,绑定是成功的,但当改变这个实例的属性时,textbox不跟随变化(此时我是用wpf引用的这个dll),然后我试了下,把这个类的代码直接写在wpf的解决方案中时,textbox会跟随变化,试了几次,好像是通过引用dll时,好像wpf认为这个类没有propertychanged这个事件,请大神告诉下问题所在啊,我用的vs2012
贴出你的代码看看,你的类有没有在change调用的时候触发propertychanged事件
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Public Class PE
Implements System.ComponentModel.INotifyPropertyChanged
Private psID As String
Public Property ID() As String
Get
Return psID
End Get
Set(ByVal value As String)
psID = value
End Set
End Property
Private psName As String
Public Property Name() As String
Get
Return psName
End Get
Set(ByVal value As String)
psName = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Name"))
End Set
End Property
Private psContent As String
Public Property Content() As String
Get
Return psContent
End Get
Set(ByVal value As String)
psContent = value
End Set
End Property
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
End Class
wpf的代码是:
Imports System.ComponentModel
Class MainWindow
Dim GK As New WuZi
Dim bn As New Binding
Sub New()
' 此调用是设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
bn.Source = GK
bn.Path = New PropertyPath("Name")
bn.Mode = BindingMode.TwoWay
txt1.SetBinding(TextBox.TextProperty, bn)
End Sub
Sub Wodec()
GK.Name = "secord"
End Sub
End Class