title: Can't access datacontext in multivalueconverter
body: <p>I have a usercontrol which I need to set a specific DataContext on. The usercontrol uses multivalueconverters. However, the binding in  multivalueconverter fails to use the datacontext. It works fine for regular value converters. Anyone know what is going on? To clarify, below code is not similar to my real code, it's just a sample reproducing my issue. FOr example, my multivalueconverters take more than one argument.</p>
  
  <p>XAML:</p>
  
  <pre><code>&lt;Window x:Class="MultConvTest.Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:MultConvTest="clr-namespace:MultConvTest"
      Title="Window1" Height="300" Width="300"&gt;
  
      &lt;Window.Resources&gt;
          &lt;MultConvTest:MyValueConverter x:Key="MyValueConverter" /&gt;
          &lt;MultConvTest:MyMultiConverter x:Key="MyMultiConverter" /&gt;
      &lt;/Window.Resources&gt;
  
      &lt;StackPanel&gt;
  
          &lt;!--This works, output is Formatted: 7--&gt;
          &lt;TextBlock 
              DataContext="{Binding Path=Data}"
              Text="{Binding Path=Length, Converter={StaticResource MyValueConverter}}" /&gt;
  
          &lt;!--This works, output is Formatted: 7--&gt;
          &lt;TextBlock&gt;
              &lt;TextBlock.Text&gt;
                  &lt;MultiBinding Converter="{StaticResource MyMultiConverter}"&gt;
                      &lt;Binding Path="Data.Length" /&gt;
                  &lt;/MultiBinding&gt;
              &lt;/TextBlock.Text&gt;
          &lt;/TextBlock&gt;
  
          &lt;!--This fails, the converter never access the DataContext of the textbox--&gt;
          &lt;TextBlock 
              DataContext="{Binding Path=Data}"&gt;
              &lt;TextBlock.Text&gt;
                  &lt;MultiBinding Converter="{StaticResource MyMultiConverter}"&gt;
                      &lt;Binding Path="Length" /&gt;
                  &lt;/MultiBinding&gt;
              &lt;/TextBlock.Text&gt;
          &lt;/TextBlock&gt;
  
      &lt;/StackPanel&gt;
  
  &lt;/Window&gt;
  </code></pre>
  
  <p>Code behind:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Windows;
  using System.Windows.Data;
  
  namespace MultConvTest
  {
      public partial class Window1 : Window
      {
          public Window1()
          {
              InitializeComponent();
  
              DataContext = this;
          }
  
          public string Data
          {
              get { return "My Text"; }
          }
      }
  
      public class MyValueConverter : IValueConverter
      {
          public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
          {
              int number = (int)value;
              return string.Format("Formatted: {0}", number);
          }
  
          public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
          {
              throw new NotImplementedException();
          }
      }
  
      public class MyMultiConverter : IMultiValueConverter
      {
          public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
          {
              // This will fail when DataContext is set. values[0] is of type Ms.Internal.NamedObject 
              // with value DependencyProperty.UnsetValue.
              int number = (int)values[0];
              return string.Format("Formatted: {0}", number);
          }
  
          public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
          {
              throw new NotImplementedException();
          }
      }
  }
  </code></pre>