61 lines
1.3 KiB
C#
61 lines
1.3 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
|
|
using BS.Shared.Core;
|
|
|
|
namespace BeWo.ViewModel
|
|
{
|
|
public abstract class AbstractBaseVM : INotifyPropertyChanged
|
|
{
|
|
private bool _IsDirty;
|
|
|
|
public virtual bool IsDirty
|
|
{
|
|
get { return _IsDirty; }
|
|
}
|
|
|
|
public Type Type
|
|
{
|
|
get { return GetType(); }
|
|
}
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
public virtual void SetDirty(bool newDirty)
|
|
{
|
|
_IsDirty = newDirty;
|
|
}
|
|
|
|
protected bool AreDifferent(object pMember, object pNewValue)
|
|
{
|
|
if (pNewValue is string && pNewValue != null)
|
|
{
|
|
pNewValue = (pNewValue as string).Trim();
|
|
}
|
|
|
|
if (pNewValue is string && ((string) pNewValue) == string.Empty)
|
|
{
|
|
return pMember != null && ((string) pMember) != string.Empty;
|
|
}
|
|
|
|
return (pMember == null && pNewValue != null) || (pMember != null && !pMember.Equals(pNewValue));
|
|
}
|
|
|
|
protected bool AreEqual(object x, object y)
|
|
{
|
|
NullCompareResult lResult = Utils.NullCompare(x, y);
|
|
return lResult.BothNotNull
|
|
? x.Equals(y)
|
|
: !lResult.Different;
|
|
}
|
|
|
|
protected virtual void FirePropertyChanged(string pPropertyName)
|
|
{
|
|
_IsDirty = true;
|
|
if (PropertyChanged != null)
|
|
{
|
|
PropertyChanged(this, new PropertyChangedEventArgs(pPropertyName));
|
|
}
|
|
}
|
|
}
|
|
} |