title: How to validate Observable Collection with INotifyDataErrorInfo interface
body: <p>I'm developing <code>WPF</code> application with <code>MVVM</code> pattern and using <code>Prism</code> Framework.</p>
  
  <p>I have a basic data class as follow.</p>
  
  <pre><code>public class ProductDecorator : DecoratorBase&lt;Product&gt;
  {
      private string _ProductShortName;
      private Boolean _IsSelected = false;
  
      // I have omitted some code for clarity here.
  
      [Required]
      public int ProductID
      {
          get { return BusinessEntity.ProductID; }
          set
          {
              SetProperty(() =&gt; BusinessEntity.ProductID == value,
                              () =&gt; BusinessEntity.ProductID = value);
          }
      }
  
      public Boolean IsSelected
      {
          get { return _IsSelected; }
          set
          {
              SetProperty(ref _IsSelected, value);
          }
      }
   }
  </code></pre>
  
  <p>I create the observable collection of the above data class in the ViewModel.</p>
  
  <pre><code>public class SaleInvoiceViewModel {
  
      private ObservableCollection&lt;ProductDecorator&gt; _productDecorators;
      public ObservableCollection&lt;ProductDecorator&gt; ProductDecorators
      {
          get { return _productDecorators; }
          set { SetProperty(ref _productDecorators, value); }
      }
  }
  </code></pre>
  
  <p>And I bounded this observable collection to the listbox in the View.</p>
  
  <pre><code>&lt;telerik:RadListBox ItemsSource="{Binding ProductDecorators}" HorizontalAlignment="Stretch" Margin="5,10,5,5" Grid.Column="1" VerticalAlignment="Top"&gt;
    &lt;telerik:RadListBox.ItemTemplate&gt;
       &lt;DataTemplate&gt;
           &lt;StackPanel Orientation="Horizontal"&gt;
               &lt;CheckBox Margin="2" IsChecked="{Binding IsSelected}" /&gt;
               &lt;TextBlock Text="{Binding ProductShortName}" FontSize="14" /&gt;
           &lt;/StackPanel&gt;
       &lt;/DataTemplate&gt;
    &lt;/telerik:RadListBox.ItemTemplate&gt;
  &lt;/telerik:RadListBox&gt;
  </code></pre>
  
  <p>From the above context, I want to validate "the user must select at least one item in the list box". In other words, <code>IsSelected</code> property must be <strong>true</strong> in one of the <code>ProductUmDecorator</code> class from the <strong>observable collection</strong> <code>ProductUmDecorators</code>.</p>
  
  <p>Currently I use <code>INotifyDataErrorInfo</code> Interface and <code>Data Annotations</code> for validation rule. I've lost that <strong>how should I implement my problem to achieve this validation</strong>? </p>