title: Multibinding with convertback does not work when one converted value in UnsetValue
body: <p>I have the following Multibinding:</p>
  
  <pre><code> &lt;Grid.Visibility&gt;
      &lt;MultiBinding Converter="{StaticResource MyMultiValueConverter}" Mode="TwoWay"&gt;
        &lt;Binding RelativeSource="{RelativeSource TemplatedParent}" Path="MyVisibilityDependencyProperty" Mode="TwoWay"/&gt;
        &lt;Binding RelativeSource="{RelativeSource TemplatedParent}" Path="MyBoolProperty" Mode="TwoWay"/&gt;
     &lt;/MultiBinding&gt;
  &lt;/Grid.Visibility&gt;
  </code></pre>
  
  <p>MyVisibilityDependencyProperty is a dependency property. MyBoolProperty is a normal property.
  The implementation of MyMultiValueConverter is the important thing:</p>
  
  <pre><code>public class MyMultiValueConverter: IMultiValueConverter
  {
      public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
      {
         //Not interesting
      }
  
      public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
      {
          return new[] { value, Binding.DoNothing};
      }
  }
  </code></pre>
  
  <p>Now the scenario: I do smth. that triggers a call of the ConvertBack-Method, which means I hit a break point there. Afterwards I hit a break point in the OnPropertyChangedCallback of MyVisibilityDependencyProperty. There I can see that the new value of MyVisibilityDependencyProperty is the value that was set in the ConvertBack-Method. </p>
  
  <p>Now the issue that I do not understand.  I change the implementation of the ConvertBack-Method to:</p>
  
  <pre><code>public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
      {
          return new[] { value, DependencyProperty.UnsetValue};
      }
  </code></pre>
  
  <p>Now I follow the exact same scenario. I do smth. that triggers a call of the ConvertBack-Method, which means I hit a break point there. After that nothing happens. The OnPropertyChangedCallback  is not called and MyVisibilityDependencyProperty is not updated. Why?</p>
  
  <p>It seems like that if one of the values in the array is DependencyProperty.UnsetValue, propagation of all values is stopped. Not only for that value but all values in the array. This is supported by the following behavior:</p>
  
  <pre><code>return new[] { Binding.DoNothing, false };
  </code></pre>
  
  <p>This results in a call of the setter of MyBoolProperty.</p>
  
  <pre><code>return new[] { DependencyProperty.UnsetValue, false };
  </code></pre>
  
  <p>This does not call the setter of MyBoolProperty. </p>
  
  <p>I could not find any hints of explanation in documentation and it does not make sense in my opinion. </p>