/// <summary>
 /// triggered when the ItemsSource collection is set/changed
 /// </summary>
 /// <param name="d">the MultiSelectComboBox object</param>
 /// <param name="e">unused</param>
 private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != null)
     {
         MultiSelectComboBox control = (MultiSelectComboBox)d;
         control.CreateInternalNodeList();
     }
 }
 /// <summary>
 /// triggered when the SelectedItems collection is set/changed
 /// </summary>
 /// <param name="d">the MultiSelecComboBox object</param>
 /// <param name="e">unused</param>
 private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 {
     if (e.NewValue != null)
     {
         MultiSelectComboBox control = (MultiSelectComboBox)d;
         if (control != null)
         {
             control.SelectNodes();
             control.SetText();
         }
     }
 }