MVVM属性数据绑定

MVVM属性数据绑定,mvvm,Mvvm,为什么大多数MVVM数据绑定属性示例都会检查当前值是否等于上一个值 private string name; public string Name { set { if(this.name != value) <- why is this check needed. {...} } } 私有字符串名称; 公共字符串名 { 设置 { 如果MVVM中的(this.name!=value),则属性设置程序会在属性更改后触发UI更新。添加此检查可防止U

为什么大多数MVVM数据绑定属性示例都会检查当前值是否等于上一个值

private string name;
public string Name
{
  set 
  {
    if(this.name != value) <- why is this check needed.   
    {...}  
  }  
}
私有字符串名称;
公共字符串名
{
设置
{

如果MVVM中的(this.name!=value),则属性设置程序会在属性更改后触发UI更新。添加此检查可防止UI不必要地刷新(可能会闪烁)。

在绑定“双向”的情况下,更改XAML中的值时,ViewModel端的绑定属性中的值不得重新发送相同的值。另一方面,如果该值(ViewModel绑定端)未更改,则无需抛出“RaiseChangedProperty”事件到视图。

这是您自己的代码调用setter两次还是与绑定和视图有关?我从来没有注意到绑定触发了太多更新,我想大多数情况下,这个问题的发生都是因为您自己的代码。不过,在Delphi时代,“值实际更改”检查并不是什么新鲜事,这也是常见的做法。。。