title: Best approch for creating Base control
body: <p>I am looking for a solution for this scenario -</p>
  
  <p>I need to implement a feature to allow user to add various controls to <code>canvas</code>(WPF, custom and third party ) and then select any one of them and modify some properties in <code>PropertyGrid</code>(changes needs to be reflected in UI).</p>
  
  <p>I don't want to expose all the properties of any control only some of them(relevant to end user); apart from this there are some properties which will be common for all controls e.g. Title, Value(Value will be bound to some property of a control, say Text of <code>TextBox</code> and Content of <code>Label</code>) etc.</p>
  
  <p>I am thinking of putting all the common properties at one place.</p>
  
  <p>Things I am confused about -</p>
  
  <ol>
  <li><p>How to create such base class, whether to use <code>UserControl</code> or Custom Control for this?</p></li>
  <li><p>How will the binding work between Control, base class properties and <code>PropertyGrid</code>?</p></li>
  <li><p>What type of object will I expose to <code>PropertyGrid</code>?</p></li>
  </ol>
  
  <p>Any idea on what approach should be followed in this case, any kind of input will really be helpful.</p>