Files
BeWoPlaner/BeWo/ViewModel/AbstractBaseVM.cs
Lyndon 68925d074f Kalender: Rechteprüfung überarbeitet. Aufgaben in den Kalender integriert.
Verwaltung: Notizen bei den Maßnahmen hinzugefügt
2019-02-28 12:38:29 +01:00

58 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;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(pPropertyName));
}
}
}