void IViewAware.AttachView(object view, object context) {
if (CacheViews)
Views[context ?? View.DefaultContext] = view;
var nonGeneratedView = View.GetFirstNonGeneratedView(view);
var element = nonGeneratedView as FrameworkElement;
if (element != null && !(bool)element.GetValue(PreviouslyAttachedProperty)) {
element.SetValue(PreviouslyAttachedProperty, true);
View.ExecuteOnLoad(element, (s, e) => {
OnViewLoaded(s);
#if WP7
EventHandler layoutUpdated = null;
layoutUpdated = (s2, e2) => {
OnViewReady(s2);
element.LayoutUpdated -= layoutUpdated;
};
element.LayoutUpdated += layoutUpdated;
#endif
});
}
OnViewAttached(nonGeneratedView, context);
ViewAttached(this, new ViewAttachedEventArgs { View = nonGeneratedView, Context = context });
}