private static void OnSelectedItemPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
AutoCompleteBox source = d as AutoCompleteBox;
if(source != null)
{
if(source._ignorePropertyChange)
{
source._ignorePropertyChange = false;
return;
}
// Update the text display
if(source._skipSelectedItemTextUpdate)
{
source._skipSelectedItemTextUpdate = false;
}
else
{
source.OnSelectedItemChanged(e.NewValue);
}
}
// Fire the SelectionChanged event
List<object> removed = new List<object>();
if(e.OldValue != null)
{
removed.Add(e.OldValue);
}
List<object> added = new List<object>();
if(e.NewValue != null)
{
added.Add(e.NewValue);
}
if(source != null)
{
source.OnSelectionChanged(new SelectionChangedEventArgs(
#if !SILVERLIGHT
SelectionChangedEvent,
#endif
removed,
added));
}
}