有两个字段。 字段A FromValue 和字段B ToValue 。
当用户在字段A中输入值时,字段B会更新。
字段B中的更新更新字段A.
当用户在字段B中输入值时,字段A会更新。
字段A中的更新会更改字段B.
这会创建一个无限循环并最终导致应用崩溃。
如何临时禁用OnPropertyChanged 事件,以便在字段A中输入值时,返回更新字段B,它不会导致无限循环?
想法是实现以下:
也许我只是疯了。
private string _FromValue{ get; set;}
public string FromValue
{
get
{
return _FromValue;
}
set
{
_FromValue = value;
ToValue = FromValue + "x";
OnPropertyChanged("FromValue");
}
}
private string _ToValue { get; set; }
public string ToValue
{
get
{
return _ToValue;
}
set
{
_ToValue = value;
FromValue = ToValue + "y";
OnPropertyChanged("ToValue");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string PropertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
答案 0 :(得分:1)
在设置值
时使用内部字段而不是属性public string FromValue
{
get
{
return _FromValue;
}
set
{
_FromValue = value;
_ToValue = FromValue + "x";
OnPropertyChanged("FromValue");
OnPropertyChanged("ToValue");
}
}
private string _ToValue { get; set; }
public string ToValue
{
get
{
return _ToValue;
}
set
{
_ToValue = value;
_FromValue = ToValue + "y";
OnPropertyChanged("ToValue");
OnPropertyChanged("FromValue");
}
}