title: How to make UserControl initialization only once after property is set
body: <p>Code:</p>
  
  <pre><code>public partial class MyControl : UserControl
  {
      int size = 8;
  
      public int Size
      {
          get { return size; }
          set { size = value; Initialize(); }
      }
  
      public MyControl()
      {
          InitializeComponent();
          Initialize();
      }
  
      void Initialize()
      {
           // ...
      }
  }
  </code></pre>
  
  <p>XAML:</p>
  
  <pre><code>&lt;local:MyControl"/&gt;
  </code></pre>
  
  <p>or:</p>
  
  <pre><code>&lt;local:MyControl Size="10"/&gt;
  </code></pre>
  
  <p>When <code>Size</code> property is set in XAML, <code>Initialize</code> is called twice. If I remove <code>Initialize</code> call from <code>InitializeComponent</code>, <code>Initialize</code> is called once from <code>Size</code> setter. But in this case, if <code>Size</code> is not set in XAML, <code>Initialize</code> is not called at all.</p>
  
  <p>Is there any way to write initialization function, which is executed once, after all control properties (if any) are set from XAML?</p>