/// <summary> /// Initializes a new instance of the <see cref="ItemsSourceAdapter" /> class. /// </summary> public ItemsSourceAdapter([NotNull] object container, Context context, bool listenCollectionChanges, string dropDownItemTemplateSelectorName = null, string itemTemplateSelectorName = AttachedMemberConstants.ItemTemplateSelector, string dropDownItemTemplateIdName = null, string itemTemplateIdName = AttachedMemberConstants.ItemTemplate) { Should.NotBeNull(container, "container"); _container = container; _itemTemplateProvider = new DataTemplateProvider(container, itemTemplateIdName, itemTemplateSelectorName); _dropDownTemplateProvider = new DataTemplateProvider(container, dropDownItemTemplateIdName ?? AttachedMembers.AdapterView.DropDownItemTemplate, dropDownItemTemplateSelectorName ?? AttachedMembers.AdapterView.DropDownItemTemplateSelector); _layoutInflater = context.GetBindableLayoutInflater(); if (listenCollectionChanges) _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } }
public ItemsSourceAdapter([NotNull] object container, Context context, bool listenCollectionChanges, string dropDownItemTemplateSelectorName = null, string itemTemplateSelectorName = null, string dropDownItemTemplateName = null, string itemTemplateName = null) { Should.NotBeNull(container, "container"); _container = container; container.TryGetBindingMemberValue(AttachedMembers.Object.StableIdProvider, out _stableIdProvider); _itemTemplateProvider = new DataTemplateProvider(container, itemTemplateName ?? AttachedMemberConstants.ItemTemplate, itemTemplateSelectorName ?? AttachedMemberConstants.ItemTemplateSelector); _dropDownTemplateProvider = new DataTemplateProvider(container, dropDownItemTemplateName ?? AttachedMembers.AdapterView.DropDownItemTemplate, dropDownItemTemplateSelectorName ?? AttachedMembers.AdapterView.DropDownItemTemplateSelector); _layoutInflater = context.GetBindableLayoutInflater(); if (listenCollectionChanges) _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } _defaultDropDownTemplate = IsSpinner() ? global::Android.Resource.Layout.SimpleDropDownItem1Line : global::Android.Resource.Layout.SimpleSpinnerDropDownItem; var absListView = container as AdapterView; if (absListView != null) { var member = BindingServiceProvider.MemberProvider.GetBindingMember(absListView.GetType(), AttachedMembers.ViewGroup.DisableHierarchyListener, false, false); if (member.CanWrite) member.SetSingleValue(absListView, Empty.TrueObject); } }
public void SetListener(Context context, DrawerLayout.IDrawerListener listener) { _listener = listener; if (!(listener is ActionBarDrawerToggle)) return; var activity = context.GetActivity() as IActivityView; if (activity == null) return; activity.Mediator.OptionsItemSelected += OptionsItemSelected; activity.Mediator.ConfigurationChanged += OnConfigurationChanged; activity.Mediator.PostCreate += OnPostCreate; }
protected virtual void StartActivity(Context context, Intent intent, IDataContext dataContext) { var activity = context.GetActivity(); Action<Context, Intent, IDataContext> startAction = null; if (activity != null) startAction = activity.GetBindingMemberValue(AttachedMembers.Activity.StartActivityDelegate); if (startAction == null) context.StartActivity(intent); else startAction(context, intent, dataContext); }
protected void TryListenActivity(Context context) { var activity = context.GetActivity(); var activityView = activity as IActivityView; if (activityView == null) Tracer.Warn("{0} - The type {1} does not implement the IActivityView.", this, context); else { InitializeListener(); activityView.Mediator.Destroyed += _listener.Handle; } }