protected void RaisePropertyChanged(params Expression <Func <object> >[] propertyExpressions)
        {
            for (int i = 0; i < propertyExpressions.Length; i++)
            {
                Expression <Func <object> > propertyExpression = propertyExpressions[i];

                OnPropertyChanged(this, new PropertyChangedEventArgs(PropertySupport.ExtractPropertyName <object>(propertyExpression)));
            }
        }
        protected virtual bool Set <T>(Expression <Func <T> > propertyExpression, T value)
        {
            string propertyName = PropertySupport.ExtractPropertyName(propertyExpression);

            return(Set <T>(propertyName, value));
        }
        protected virtual T Get <T>(Expression <Func <T> > propertyExpression)
        {
            string propertyName = PropertySupport.ExtractPropertyName(propertyExpression);

            return(Get <T>(propertyName));
        }