许多示例(甚至来自MS)都使用调度程序来更新数据绑定属性,并且可以找到许多不同的答案。是否存在“官方”声明?当前,我一直使用调度程序,并且只有在可以确定这是一项正式功能并且在以后的.Net版本中仍然可以使用时,才更改此设置。
我不相信有正式声明。但是,它通常似乎取决于您正在执行的更新类型。如果要更新VM上的常规属性,那么没关系,如果要更新依赖项属性,那么就可以了。如果要从列表中添加或删除列表,则没关系,如果要从可观察集合中添加或删除列表,则可以。
[通常,我会避免在VM中使用依赖项属性,并使用INotifyPropertyChanged,将其留给您的UserControls。然后,您不必担心它们。在您的VM的基类中添加DoPropertyChanged(propertyname)之类的方法,以便随后可以创建一个属性片段,例如VB.net
Private _MajorChange As String
Public Property MajorChange As String
Get
Return _MajorChange
End Get
Set(value As String)
_MajorChange = value
DoPropertyChanged("MajorChange")
End Set
End Property
C#
private string _MajorChange;
public string MajorChange
{
get
{
return _MajorChange;
}
set
{
_MajorChange = value;
DoPropertyChanged("MajorChange");
}
}
并快速将属性添加到您的VM。
我们也大量使用索引属性,并且也有一个摘要。VB
Public Property PropertyName As String
Get
Return Me("ColumnName")
End Get
Set(value As String)
Me("ColumnName") = value
DoPropertyChanged("PropertyName")
End Set
End Property
C#
public string PropertyName
{
get
{
return this("ColumnName");
}
set
{
this("ColumnName") = value;
DoPropertyChanged("PropertyName");
}
}