private string _lineOne;
/// <summary>
/// Sample ViewModel property; this property is used in the view to display its value using a Binding.
/// </summary>
/// <returns></returns>
public string LineOne
{
get
{
return _lineOne;
}
set
{
if (value != _lineOne)
{
_lineOne = value;
NotifyPropertyChanged("LineOne");
}
}
}
private string _lineTwo;
/// <summary>
/// Sample ViewModel property; this property is used in the view to display its value using a Binding.
/// </summary>
/// <returns></returns>
public string LineTwo
{
get
{
return _lineTwo;
}
set
{
if (value != _lineTwo)
{
_lineTwo = value;
NotifyPropertyChanged("LineTwo");
}
}
}
private string _lineThree;
/// <summary>
/// Sample ViewModel property; this property is used in the view to display its value using a Binding.
/// </summary>
/// <returns></returns>
public string LineThree
{
get
{
return _lineThree;
}
set
{
if (value != _lineThree)
{
_lineThree = value;
NotifyPropertyChanged("LineThree");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (null != handler)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
这是来自VS windows phone的数据绑定应用程序的典型ItemViewModel.cs页面。
我有两个qs:
首先,所有属性的setter中“if”语句的功能是什么。 其次,请解释NotifyPropertyChanged方法的工作(逐行)以及事件PropertyChanged。
答案 0 :(得分:0)
我有两个qs:首先,“if”语句的功能是什么? 所有房产的设定者。
确保仅在属性值实际更改时才会引发PropertyChanged
事件。当它被设置为已经具有更新的值时,它被跳过,因为它不会改变任何东西。
其次,请向我解释
NotifyPropertyChanged
的工作情况 方法(逐行)以及事件PropertyChanged
。
这是筹集活动的标准方式。检查Events (C# Programming Guide)。它描述了事件以及如何处理它们。快捷方式:null
需要检查才能阻止NullReferenceException
。要知道为什么使用局部变量,请阅读Eric Lippert的这篇文章:Events and Races。