public static ISourceItemBindingBuilder <TSourceItem, IEnumerable <object> > BindDefault <TSourceItem>(
            [NotNull] this BindingSet <TSourceItem> bindingSet,
            [CanBeNull] UIPageViewControllerObservableDataSource pageViewControllerDataSource)
            where TSourceItem : class
        {
            if (bindingSet == null)
            {
                throw new ArgumentNullException(nameof(bindingSet));
            }

            return(bindingSet.Bind(pageViewControllerDataSource)
                   .For(v => v.NotNull().ItemsBinding()));
        }
        public static IDisposable CurrentItemIndexChangedWeakSubscribe(
            this UIPageViewControllerObservableDataSource eventSource,
            EventHandler <IndexChangedEventArgs> eventHandler)
        {
            if (eventSource == null)
            {
                throw new ArgumentNullException(nameof(eventSource));
            }

            if (eventHandler == null)
            {
                throw new ArgumentNullException(nameof(eventHandler));
            }

            return(new WeakEventSubscription <UIPageViewControllerObservableDataSource, IndexChangedEventArgs>(
                       eventSource,
                       (source, handler) => source.CurrentItemIndexChanged += handler,
                       (source, handler) => source.CurrentItemIndexChanged -= handler,
                       eventHandler));
        }