title: C# DataTemplate Binding not updating on new isntance of same object type
body: <p>I am currently creating custom DataTemplates for some custom lists in a Property grid (RadPropertyGrid from Telerik).</p>
  
  <p>The main issue I keep stumbling upon is my custom bindings defined in the datatemplate not being updated when the parent source is updated.</p>
  
  <p>Given the data structure:</p>
  
  <pre><code>    public class SomeDataStruct
      {
              public bool TestBool { get; set; }
              public string TestString { get; set; }
              public Point TestPoint { get; set; }
      }
  </code></pre>
  
  <p>When initially setting the radPropertyGrid item, there is absolutely no issue.</p>
  
  <pre><code>    var data1= new SomeDataStruct() { ... };
      radPropertyGrid.Item = data1;
  </code></pre>
  
  <p>All is ok up to this point. Here is where the trouble arises (after having initially set an item of the same data type)</p>
  
  <pre><code>    var data2 = new SomeDataStruct() { ... }; //Initialize using completely different variables 
      radPropertyGrid.Item = data2; //Issue occurs here
  </code></pre>
  
  <p>What happens is, <strong>both the boolean and string are properly updated</strong>, however my TestPoint is not being updated. The converter is never being called. </p>
  
  <p>However, if I do this:</p>
  
  <pre><code>    radPropertyGrid.Item = null;
      radPropertyGrid.Item = data2;
  </code></pre>
  
  <p>It works completely fine!</p>
  
  <p>Here is my code for creating the DataTemplate to handle the point. Rather simple, it parses the point (0,0, 0 0 etc), and when converting back it returns 0,0.</p>
  
  <pre><code>           var fe = new FrameworkElementFactory(typeof(TextBox));
             fe.SetBinding(TextBox.TextProperty, new Binding(path)
              {
                  Mode = BindingMode.TwoWay,
                  Converter = new GenericStringConverter&lt;Point&gt;
                      (
                          point =&gt; { return (point == null) ? "" : point.ToString(); },
                          str =&gt; { return Point.Parse(str);}
                      ),
              });
              dt = new DataTemplate();
              dt.VisualTree = fe;
              dt.DataType = type;
              dt.Seal();
  </code></pre>
  
  <p>Does anyone have any ideas as to what I could be missing in my datatemplate or binding? I have tried messing with UpdateSourceTrigger and NotifyOnSourceUpdated, but neither seemed to have any effect.</p>