protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
base.OnSelectionChanged(e);
if (!this.isInitializing)
{
BindingDescriptor entry = (BindingDescriptor)e.AddedItems[0];
if (null == entry.Value)
{
Binding = null;
}
// try to avoid blowing away any binding that has been custom-tweaked in XAML.
else if (Binding == null || !(Binding is ModelItem) || !((ModelItem)Binding).ItemType.Equals(entry.Value.BindingType))
{
Binding instance = (Binding)Activator.CreateInstance(entry.Value.BindingType);
instance.Name = entry.BindingName;
Binding = instance;
}
}
}