title: ObservableCollection Collection Changed event not firing
body: <p>I have an observable collection in my ViewModel, bound to a datagrid.  I want to implement some logic for refreshing the data in other windows based on changes to the collection/ updates to the database (using LINQ to SQL).</p>
  
  <p>Here is my view model code:</p>
  
  <pre><code>    public FTViewModel(int JobID)
      {
          _windowCloseAction = new DelegateCommand(OnWindowClose);
          _oFTrn = new ObservableFilesTransmitted(_dataDc, JobID);
          _oFTrn.CollectionChanged += oFTrnCollectionChanged;
      }
  
      void oFTrnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
      {
          if (e.NewItems != null)
          {
              foreach (FilesTransmitted f in e.NewItems)
                  f.PropertyChanged += FilesTransmitted_PropertyChanged;
          }
          if (e.OldItems != null)
          {
              foreach (FilesTransmitted f in e.OldItems)
                  f.PropertyChanged -= FilesTransmitted_PropertyChanged;
          }
      }
  
      void FilesTransmitted_PropertyChanged(object sender, PropertyChangedEventArgs e)
      {
          if (e.PropertyName == "DocumentNumber")
          {
              _filesTransmittedChange = true;
          }
          _refreshViews = true;
      }
  </code></pre>
  
  <p>and the ObservableCollection constructor:</p>
  
  <pre><code>class ObservableFilesTransmitted : ViewableCollection&lt;FilesTransmitted&gt;
  {
      public ObservableFilesTransmitted(DocControlDC dataDc, int ID)
      {
          foreach (FilesTransmitted ftran in dataDc.FilesTransmitteds.Where(x=&gt;x.JobID==ID).OrderByDescending(x =&gt; x.TransmittalName))
          {
              this.Add(ftran);
          }
      }
  }
  </code></pre>
  
  <p>The debugger does not stop in the oFTrnCollectionChanged.  I think because the call to create the observable collection happens before I add the CollectionChanged event.  But obvously I can't switch those two lines.  I've looked at various StackOverflow and CodeProject topics on this, and it seems like what I have should work.  Do I need to add and remove a dummy item just to get the CollectionChanged hander called?  What am I missing?</p>
  
  <p>It seems like perhaps I should have a constructor (for the observable collection) that does not add any members, and a function that adds the members from the database.  Then I can call new, add the collectionchanged handler, and then fill the collection.  I am hoping to avoid that level of rewrite though, but perhaps it's the only reasonable way.</p>