【发布时间】:2013-11-02 02:54:30
【问题描述】:
假设我有一个名为Greeting 的属性,它主要由两个绑定属性组成:LastName 和FirstName。我可以订阅名字和姓氏的更新,以便我可以使用OnPropertyChanged() 强制刷新我的 Greeting 属性。这是一个简单的例子:
查看
<TextBox Text="{Binding FirstName}" />
<TextBox Text="{Binding LastName}" />
<TextBlock Text="{Binding Greeting}" />
视图模型
Public Property FirstName() As String
Get
Return _firstName
End Get
Set(ByVal value As String)
_firstName = value
OnPropertyChanged("FirstName")
End Set
End Property
'... Omitting LastName for brevity ...
Public ReadOnly Property Greeting() As String
Get
Return String.Format("Hello {0} {1}", Firstname, LastName)
End Get
End Property
目前的设置方式,不会更新 Greeting 绑定。我可以将OnPropertyChanged("Greeting") 放在FirstName 和LastName 的设置器中,但这感觉不对。在一个更复杂的例子中,我宁愿每个对象都在发生变化时自行刷新。
问:) 当ReadOnly 属性组成的属性之一发生更改时,我可以强制更新它吗?
【问题讨论】:
-
您想要完全按照您所说的“感觉不对”。这是正确的/最好的/首选的/正常的方式来解决这个问题。根据您的“Q:)”,这确实是唯一的方法。
标签: wpf vb.net mvvm binding inotifypropertychanged