title: WPF Collections and Databinding
body: <p>I am new to WPF and trying to wrap my head around WPF's framework, what it does and does not do for you.</p>
  
  <p>To clarify this, I would like to know what is the difference between this:</p>
  
  <pre><code>public List&lt;MyCustomObject&gt; MyCustomObjects
  {
      get { return (List&lt;MyCustomObject&gt;)GetValue(MyCustomObjectsProperty); }
      set { SetValue(MyCustomObjectsProperty, value); }
  }
  
  public static readonly DependencyProperty MyCustomObjectsProperty =
      DependencyProperty.Register("MyCustomObjects", typeof(List&lt;MyCustomObject&gt;),
      typeof(Main), new UIPropertyMetadata(new List&lt;MyCustomObject&gt;()));
  </code></pre>
  
  <p><br><br>
  and this:</p>
  
  <pre><code>public ObservableCollection&lt;MyCustomObject&gt; MyCustomObjects { get; set; }
  
  public Main ()
  {
      MyCustomObjects = new ObservableCollection&lt;&lt;MyCustomObject&gt;();
  }
  </code></pre>