title: UWP Binding to ConverterParameter not working
body: <p>I am binding a VM property to my ConverterParemeter, but it always appear to be <code>null</code> in Converter, is there any alternative to pass property to the converter.</p>
  
  <p>As I can't share the original code, below is the replica of the issue that I am facing. In my DummyConverter parameter is always null even though <code>FilterType</code> value is set.</p>
  
  <p>Xaml:</p>
  
  <pre><code>&lt;Grid&gt;
          &lt;ComboBox x:Name="myComboBox" ItemsSource="{Binding ComboBoxList, Converter={StaticResource DummyConverter}, ConverterParameter={Binding FilterType}}" SelectedItem="{Binding SelectedPerson, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center" Height="50" Width="150"&gt;
          &lt;/ComboBox&gt;
      &lt;/Grid&gt;
  </code></pre>
  
  <p>VM:</p>
  
  <pre><code>public class MainViewModel : INotifyPropertyChanged
      {
          private string header;
  
          public string Header
          {
              get { return header; }
              set
              {
                  header = value;
                  RaisePropertyChange(nameof(Header));
              }
          }
  
          private Person selectedPerson;
  
          public Person SelectedPerson
          {
              get { return selectedPerson; }
              set { selectedPerson = value; RaisePropertyChange(nameof(SelectedPerson)); }
          }
  
  
          private ObservableCollection&lt;Person&gt; comboBoxList;
  
          public ObservableCollection&lt;Person&gt; ComboBoxList
          {
              get { return comboBoxList; }
              set { comboBoxList = value; }
          }
  
          public FilterType FilterType { get; set; }
  
          public DelegateCommand DropDownClosedCommand { get; set; }
  
          public MainViewModel()
          {
              Header = "My Header";
  
              FilterType = FilterType.None;
  
              ComboBoxList = new ObservableCollection&lt;Person&gt; {
                   new Person() { Name = "Person 1", IsChecked = false },
                        new Person() { Name = "Person 2", IsChecked = false },
                        new Person() { Name = "Person 3", IsChecked = false },
                        new Person() { Name = "Person 4", IsChecked = false }
              };
  
              DropDownClosedCommand = new DelegateCommand(OnDropDownClosed);
  
          }
  
          public event PropertyChangedEventHandler PropertyChanged;
  
          private void RaisePropertyChange(string propertyName)
          {
              PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
          }
  
          private void OnDropDownClosed(object e)
          {
              //CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
              //() =&gt;
              //{
                  SelectedPerson = ComboBoxList.FirstOrDefault(x =&gt; x.IsChecked);
              //});
          }
      }
  </code></pre>
  
  <p>Converter:</p>
  
  <pre><code>public class DummyConverter : IValueConverter
      {
          public object Convert(object value, Type targetType, object parameter, string language)
          {
              return value;
          }
  
          public object ConvertBack(object value, Type targetType, object parameter, string language)
          {
              return value;
          }
      }
  </code></pre>
  
  <p>In WPF, I can do with MultiBinding but in UWP MultiBinding is not available.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>From <a href="https://blogs.msdn.microsoft.com/mim/2013/03/11/tips-winrt-converter-parameter-binding/" rel="nofollow noreferrer">this</a> blog post I found out the reason of getting null values is <strong>"The reason why is that the ConverterParameter IS NOT a dependency property but a “simple” object."</strong></p>
  
  <p>So below is the modified code:</p>
  
  <p><strong>Xaml:</strong></p>
  
  <pre><code>&lt;Page.Resources&gt;
          &lt;converters:DummyConverter x:Name="DummyConverter" FilterType="{Binding FilterType}"/&gt;
  &lt;/Page.Resources&gt;
  
  &lt;Grid&gt;
           &lt;ComboBox x:Name="myComboBox" ItemsSource="{Binding ComboBoxList, Converter={StaticResource DummyConverter}}" SelectedItem="{Binding SelectedPerson, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center" Height="50" Width="150"&gt;
            &lt;interactivity:Interaction.Behaviors&gt;
              &lt;core:DataTriggerBehavior Binding="{Binding IsDropDownOpen, ElementName=myComboBox}" ComparisonCondition="NotEqual" Value="True"&gt;
                  &lt;core:InvokeCommandAction Command="{Binding DropDownClosedCommand}"/&gt;
              &lt;/core:DataTriggerBehavior&gt;
            &lt;/interactivity:Interaction.Behaviors&gt;
      &lt;/ComboBox&gt;
      &lt;/Grid&gt;
  </code></pre>
  
  <p>Converter:</p>
  
  <pre><code>  public class DummyConverter : DependencyObject, IValueConverter
      {
          public FilterType FilterType
          {
              get { return (FilterType)GetValue(FilterTypeProperty); }
              set { SetValue(FilterTypeProperty, value); }
          }
  
          public static readonly DependencyProperty FilterTypeProperty =
          DependencyProperty.Register("FilterType",
                                      typeof(FilterType),
                                      typeof(DummyConverter),
                                      new PropertyMetadata(null));
  
          public object Convert(object value, Type targetType, object parameter, string language)
          {
              return value;
          }
  
          public object ConvertBack(object value, Type targetType, object parameter, string language)
          {
              return value;
          }
      }
  </code></pre>
  
  <p><strong>MainViewModel.cs</strong></p>
  
  <pre><code>private void OnDropDownClosed(object e)
          {
              //CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
              //() =&gt;
              //{
                  SelectedPerson = ComboBoxList.FirstOrDefault(x =&gt; x.IsChecked);
                  FilterType = FilterType.Descending;
                  this.RaisePropertyChange(nameof(ComboBoxList));
              //});
          }
  </code></pre>
  
  <p>I am changing the value of <code>FilterType</code> in OnDropDownClosed but it's not affecting in the converter.</p>