У меня есть приложение wpf, которое использует веб-сервис wcf.Это мой веб-сервис и приложение, поэтому я могу вносить изменения в любую сторону.В файле Reference.cs, который автоматически генерируется Visual Studio, он использует этот код для события измененного свойства:
[System.Runtime.Serialization.DataMemberAttribute()]
public string Value {
get {
return this.ValueField;
}
set {
if ((object.ReferenceEquals(this.ValueField, value) != true)) {
this.ValueField = value;
this.RaisePropertyChanged("Value");
}
}
}
Для строк, хотя мне действительно хотелось бы следующее:
[System.Runtime.Serialization.DataMemberAttribute()]
public string Value {
get {
return this.ValueField;
}
set {
if ((object.ReferenceEquals(this.ValueField, value) != true)) {
if (this.ValueField != value)
{
this.ValueField = value;
this.RaisePropertyChanged("Value");
}
}
}
}
Таким образом, событие изменения свойства не сработает, если значение будет тем же.Почему это проблема, потому что я слушаю OnPreviewTextInput текстового поля и изменяю значение программно, затем событие отключается дважды, один раз, потому что я изменил его, и один раз, потому что wpf изменил его через привязку.
Спасибо,