title: Disable Adding Item to Collection
body: <p>I'm sure there's an "easy" answer to this, but for the moment it escapes me.</p>
  
  <p>In an MVVM application, I have a property that is a ObservableCollection, used for displaying some set of elements on the view.</p>
  
  <pre><code>private readonly ObservableCollection&lt;MyType&gt; mMyCollection = 
      new ObservableCollection&lt;MyType&gt;();
  public ObservableCollection&lt;MyType&gt; MyCollection
  {
      get { return mMyCollection; }
  }
  </code></pre>
  
  <p>I want to restrict consumers of this collection from simply using the property to add to the collection (i.e. I want to prevent this from the view):</p>
  
  <pre><code>   viewModel.MyCollection.Add(newThing);   // want to prevent this!
  </code></pre>
  
  <p>Instead, I want to force the use of a method to add items, because there may be another thread using that collection, and I don't want to modify the collection while that thread is processing it.</p>
  
  <pre><code>public void AddToMyCollection(MyType newItem)
  {
      // Do some thread/task stuff here
  }
  </code></pre>