protected virtual void OnSourceChanged (object oldSource, object newSource)
{
if (newSource == null) {
View = null;
} else {
ICollectionViewFactory factory = newSource as ICollectionViewFactory;
if (factory != null) {
View = factory.CreateView ();
} else {
ICollectionView view = null;
if (CachedViews.TryGetValue (newSource, out view)) {
View = view;
} else {
view = CollectionView.Create ((IEnumerable) newSource);
CachedViews.Add (newSource, view);
View = view;
}
}
}
Refresh ();
}