protected virtual void OnPropertyChanging(string propertyName)
        {
            PropertyChangingEventHandler propertyChanging = PropertyChanging;

            if (propertyChanging == null)
            {
                return;
            }

            DispatcherHelper.BeginInvokeIfRequired(
                () => propertyChanging.Invoke(this, new PropertyChangingEventArgs(propertyName)),
                DispatcherPriority.DataBind
                );
        }