title: Why does WPF Style to show validation errors in ToolTip work for a TextBox but fails for a ComboBox?
body: <p>I am using a typical Style to display validation errors as a tooltip from IErrorDataInfo for a textbox as shown below and it works fine.</p>
  
  <pre><code>    &lt;Style TargetType="{x:Type TextBox}"&gt;
          &lt;Style.Triggers&gt;
              &lt;Trigger Property="Validation.HasError" Value="true"&gt;
                  &lt;Setter Property="ToolTip"
                  Value="{Binding RelativeSource={RelativeSource Self},
              Path=(Validation.Errors)[0].ErrorContent}"/&gt;
              &lt;/Trigger&gt;
          &lt;/Style.Triggers&gt;
      &lt;/Style&gt;
  </code></pre>
  
  <p>But when i try to do the same thing for a ComboBox like this it fails</p>
  
  <pre><code>    &lt;Style TargetType="{x:Type ComboBox}"&gt;
          &lt;Style.Triggers&gt;
              &lt;Trigger Property="Validation.HasError" Value="true"&gt;
                  &lt;Setter Property="ToolTip"
                  Value="{Binding RelativeSource={RelativeSource Self},
              Path=(Validation.Errors)[0].ErrorContent}"/&gt;
              &lt;/Trigger&gt;
          &lt;/Style.Triggers&gt;
      &lt;/Style&gt;
  </code></pre>
  
  <p>The error I get in the output window is:</p>
  
  <p><em>System.Windows.Data Error: 17 : Cannot get 'Item[]' value (type 'ValidationError') from '(Validation.Errors)' (type 'ReadOnlyObservableCollection`1'). BindingExpression:Path=(0)[0].ErrorContent; DataItem='ComboBox' (Name='ownerComboBox'); target element is 'ComboBox' (Name='ownerComboBox'); target property is 'ToolTip' (type 'Object') ArgumentOutOfRangeException:'System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: index'</em></p>
  
  <p>Oddly it also attempts to make invalid Database changes when I close the window if I change any ComboBox values (This is also when the binding error occurs)!!! </p>
  
  <p><em>Cannot insert the value NULL into column 'EmpFirstName', table 'OITaskManager.dbo.Employees'; column does not allow nulls. INSERT fails.
  The statement has been terminated.</em></p>
  
  <p>Simply by commenting the style out everyting works perfectly. How do I fix this?</p>
  
  <p>Just in case anyone needs it one of the comboBox' xaml follows:</p>
  
  <pre><code>&lt;ComboBox ItemsSource="{Binding Path=Employees}" 
                    SelectedValuePath="EmpID"                       
                    SelectedValue="{Binding Path=SelectedIssue.Employee2.EmpID,
                       Mode=OneWay, ValidatesOnDataErrors=True}" 
                    ItemTemplate="{StaticResource LastNameFirstComboBoxTemplate}"
                    Height="28" Name="ownerComboBox" Width="120" Margin="2" 
                    SelectionChanged="ownerComboBox_SelectionChanged" /&gt;
  
  
  &lt;DataTemplate x:Key="LastNameFirstComboBoxTemplate"&gt;
      &lt;TextBlock&gt; 
           &lt;TextBlock.Text&gt; 
               &lt;MultiBinding StringFormat="{}{1}, {0}" &gt; 
                     &lt;Binding Path="EmpFirstName" /&gt; 
                     &lt;Binding Path="EmpLastName" /&gt; 
               &lt;/MultiBinding&gt;
           &lt;/TextBlock.Text&gt;
      &lt;/TextBlock&gt;
  &lt;/DataTemplate&gt;
  </code></pre>
  
  <p>SelectionChanged: (I do plan to implement commanding before long but, as this is my first WPF project I have not gone full MVVM yet. I am trying to take things in small-medium sized bites) </p>
  
  <pre><code>// This is done this way to maintain the DataContext Integrity 
  // and avoid an error due to an Object being "Not New" in Linq-to-SQL
  private void ownerComboBox_SelectionChanged(object sender, 
                                              SelectionChangedEventArgs e)
  {
      Employee currentEmpl = ownerComboBox.SelectedItem as Employee;
      if (currentEmpl != null &amp;&amp; 
          currentEmpl != statusBoardViewModel.SelectedIssue.Employee2)
      {
          statusBoardViewModel.SelectedIssue.Employee2 = currentEmpl;
      }
  }
  </code></pre>