title: Catching input events
body: <p>I have a form with <code>TextBox</code>, <code>ComboBox</code> and <code>CheckBox</code> that are filled from a function (with <code>textbox.text = "newValue";</code> for example).</p>
  
  <pre><code>private void updateIdentite(Contact c, Dal dal)
  {
      Identite id = dal.GetIdentite(c);
      if (id != null)
      {
          idCivilite.SelectedValue = id.type_civilite;//example of a ComboBox
          ...
          idNom.Text = id.pers_nom;//example of a TextBox
          ...
          idAi.IsChecked = (id.cont_drap_ai == "1");//example of a CheckBox
          ...
      }
  }
  </code></pre>
  
  <p>I need to catch an event when an item is edited manually by the user, but with <code>TextChanged</code>, <code>SelectionChanged</code> or <code>Checked</code>, these events are also fired when the form is filled with the previous function.</p>
  
  <pre><code>foreach (object item in identiteGrid.Children)
  {
      TextBox tb = item as TextBox;
      if (tb != null)
      {
          tb.TextChanged += new TextChangedEventHandler(idTextBox_TextChanged);
          continue;
      }
      ComboBox droplist = item as ComboBox;
      if (droplist != null)
      {
          droplist.SelectionChanged += new SelectionChangedEventHandler(idCombobox_SelectionChanged);
          continue;
      }
      CheckBox cb = item as CheckBox;
      if (cb != null)
      {
          cb.Checked += new RoutedEventHandler(idCheckbox_Checked);
          continue;
      } 
  }
  </code></pre>
  
  <p>Is there any way to catch an "onInput" event for those controls ?</p>
  
  <p>Thanks</p>