0
我正在開發一個使用MVVM設計模式的WPF應用程序。WPF兩個控件綁定到單個屬性不互相更新
我有一個ViewModel,它通過它的基類實現INotifyPropertyChanged。 ViewModel包含一個屬性,然後綁定到兩個文本框。下面的相關代碼。
ViewModelBase
Public MustInherit Class ViewModelBase : Implements INotifyPropertyChanged
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
Protected Sub onPropertyChanged(propertyName As String)
If Not propertyName Is Nothing Then RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
End Class
視圖模型
Public Class TemplateEditVM : Inherits ViewModelBase
Public Property Name As String
Get
Return _Template.Name
End Get
Set(value As String)
If Not _Template.Name = value Then
_Template.Name = value
onPropertyChanged("TemplateEditName")
End If
End Set
End Property
End Class
查看
<TextBox Text="{Binding Path=Name}" />
<TextBox Text="{Binding Path=Name}" />
屬性名的值正確填充兩個文本框中第一次加載時查看。問題是,當我更改其中一個文本框中的文本時,其他文本的文本不會更改,即使基礎屬性已經更改。如果我通過它,我可以看到PropertyChanged事件被觸發。
有人可以告訴我爲什麼嗎?非常感謝您的幫助。
當然!我忘記了我改變了房產名稱。順便提一句,綁定不需要明確設置爲TwoWay,因爲我認爲這是默認設置。謝謝! – 2013-02-12 10:20:42
是的。澄清onPropertyChanged(「TemplateEditName」)應該是onPropertyChanged(「Name」)或者屬性必須重命名。 – ChrisBD 2013-02-12 10:22:05