title: Binding ObservableCollection of strings to templated ListBox
body: <p>I have this collection</p>
  
  <pre><code>ObservableCollection&lt;string&gt; Urls { get; set; }
  </code></pre>
  
  <p>inside my data context class. I have a binding to it in my list box:</p>
  
  <pre><code>&lt;ListBox ItemsSource="{Binding Urls}"&gt;
  
      &lt;ListBox.ItemTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;TextBox Text="{Binding .}" /&gt;
          &lt;/DataTemplate&gt;
      &lt;/ListBox.ItemTemplate&gt;
  
  &lt;/ListBox&gt;
  </code></pre>
  
  <p>The data is diplayed in the list box, the two corresponding-not-shown-here buttons with commands Add and Delete work as well, however, the changing the <code>TextBox</code> does not affect the contents of the collection.</p>
  
  <p>I have tried <code>Mode=TwoWay</code> in binding, but I figured that it is turned on already. I have tried some other options like Validate=OnPropertyChange, however, there is still nothing get updated.</p>
  
  <p>How to make the <code>TextBox</code> inside that templated items in <code>ListBox</code> actually update the <code>Urls</code> property of a datacontext class?</p>