Вы также можете попробовать использовать функцию Replace
в Sql Server, как показано ниже.
Когда значение находится в (-) ве.
Select CAST(REPLACE(CAST(-945 as Varchar(4)), '-', '') as Int)
Когда значение уже находится в (+) ве.
Select CAST(REPLACE(CAST(945 as Varchar(4)), '-', '') as Int)
Выход в обоих случаях будет: 945
На самом деле это - только 3-4 строки на свойство; другие строки амортизируются по всем свойствам "уведомления":
class Person : INotifyPropertyChanged
{
#region INotifyPropertyChanged: Shared bit
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
#endregion
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
if (_firstName == value)
return;
_firstName = value;
OnPropertyChanged(new PropertyChangedEventArgs("FirstName"));
}
}
// Ditto for other properties
}
Вы могли попробовать что-то как следующее, которое совместно использует еще часть загрузки:
private string _firstName;
public string FirstName
{
get { return _firstName; }
set { SetNotifyingProperty("FirstName", ref _firstName, value); }
}
private void SetNotifyingProperty<T>(string propertyName,
ref T field, T value)
{
if (value.Equals(field))
return;
field = value;
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
Что я делаю на данный момент то, что я пишу это в своем классе:
//AUTOGENERATE INotifyProperty
private bool myfield;
И я записал мелкий инструмент, которые генерируют весь необходимый код свойства в частичном классе. Это не путем изящное решение, но оно работает :)