title: How do I update the CellTemplate DataTemplate control when the CellEditingTemplate DataTemplate control changes its bound value?
body: <p>I have a Template Column in my DataGrid that looks like this:</p>
  
  <pre><code>&lt;DataGridTemplateColumn&gt;
      &lt;DataGridTemplateColumn.CellTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;TextBlock Text="{Binding Item}" /&gt;
          &lt;/DataTemplate&gt;
      &lt;/DataGridTemplateColumn.CellTemplate&gt;
      &lt;DataGridTemplateColumn.CellEditingTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;ComboBox
                  DisplayMemberPath="Item"
                  Header="Item"
                  ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
                  SelectedValueBinding="{Binding AssetDescriptionID}"
                  SelectedValuePath="AssetDescriptionID" /&gt;
          &lt;/DataTemplate&gt;
      &lt;/DataGridTemplateColumn.CellEditingTemplate&gt;
  &lt;/DataGridTemplateColumn&gt;
  </code></pre>
  
  <p>The ViewModel has a public property containing the Asset Descriptions:</p>
  
  <pre><code>public IEnumerable&lt;AssetDescription&gt; AssetDescriptions { get; set; }
  </code></pre>
  
  <p>Where <code>AssetDescription</code> is essentially:</p>
  
  <pre><code>public class AssetDescription
  {
      public int AssetDescriptionID { get; set; }
      public string Item { get; set; } // Description
  }
  </code></pre>
  
  <p>The DataGrid itself is bound to an <code>ObservableCollection&lt;Asset&gt; Assets</code> property, where <code>Asset</code> contains both <code>AssetDescriptionID</code> and <code>Item</code> (description).  To accomplish that, I join the Assets  table to the AssetDescriptions table, like so:</p>
  
  <pre><code>var assets = _conn.Query&lt;Asset&gt;(
                  @"SELECT A.AssetDescriptionID, D.Item 
                      FROM Assets A
                      JOIN AssetDescriptions D
                        ON D.AssetDescriptionID = A.AssetDescriptionID");
  
  Assets = new ObservableCollection&lt;Asset&gt;(assets);
  </code></pre>
  
  <p>This all works perfectly, <em>except</em> that the <code>TextBlock</code> in the <code>CellTemplate</code> <code>DataTemplate</code> does not get updated to the new description when a new value is selected in the <code>ComboBox</code>.</p>
  
  <p>How do I accomplish that?</p>