2016-10-03 82 views
0

有两个字段。 字段A FromValue字段B ToValue暂时禁用PropertyChangedEventHandler以避免无限循环

当用户在字段A中输入值时,字段B更新。

更新在字段B的更新字段A

当用户输入一个值到字段B,字段A的更新。

更新在字段A改变字段B.

这产生一个无限循环并最终崩溃应用程序。

我怎样才能临时禁用OnPropertyChanged事件,以便当字段A中输入值时,它返回更新字段B,它不会导致无限循环?

的想法是实现以下

  • 当用户输入值到字段A,场B的更新而不是场A.
  • 当用户输入值到字段B,字段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)); 
    } 

回答

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"); 
    } 
} 
+0

感谢您使用时内场,而不是财产。我一定很想念它。 – OverflowStack