/// <summary>
 /// Invoked whenever the effective value of any dependency property on this <see cref="T:System.Windows.FrameworkElement"/> has been updated. The specific dependency property that changed is reported in the arguments parameter. Overrides <see cref="M:System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)"/>.
 /// </summary>
 /// <param name="e">The event data that describes the property that changed, as well as old and new values.</param>
 private void OnDependencyPropertyChanged(object sender, DependencyPropertyValueChangedEventArgs e)
 {
     if (PropertyChanged != null)
     {
         PropertyChanged(this, new PropertyChangedEventArgs(e.PropertyName));
     }
 }
 private void OnDataContextChanged(object sender, DependencyPropertyValueChangedEventArgs e)
 {
     _viewDataContextChanged.SafeInvoke(this, new DataContextChangedEventArgs(e.OldValue, e.NewValue));
 }