protected override void OnElementChanged (ElementChangedEventArgs<CarouselPage> e)
		{
			base.OnElementChanged (e);

			_pagedCarouselPage = (CustomCarouselPage)Element;

			_viewPager = null;

			for (int i = 0; i < ViewGroup.ChildCount; i++) {
				_viewPager = ViewGroup.GetChildAt (i) as ViewPager;
				if (_viewPager != null)
					break;
			}
			if (_viewPager == null)
				return;

			var density = Resources.DisplayMetrics.Density;

			_circlePageIndicator = new CirclePageIndicator (base.Context);
			_circlePageIndicator.SetPadding (5, 5, 5, 5);
			_circlePageIndicator.Radius = 5 * density;
			_circlePageIndicator.PageSelected += (object sender, PageSelectedEventArgs args) => {
				if(Element.ItemsSource == null)
					return;
				
				int count = 0;
				foreach (var item in Element.ItemsSource) {
					if (count == args.Position) {
						Element.SelectedItem = item;
						break;
					}
					count++;
				}
			};
			SetPageIndicatorTintColor ();
			SetCurrentPageIndicatorTintColor ();

			AddView (_circlePageIndicator);
			_circlePageIndicator.BringToFront ();

		}
			protected override void OnElementChanged(ElementChangedEventArgs<CarouselPage> e)
			{
				base.OnElementChanged(e);

				_pagedCarouselPage = (CxPagedCarouselPage) Element;

				_viewPager = null;

				for (int i = 0; i < ViewGroup.ChildCount; i++)
				{
					_viewPager = ViewGroup.GetChildAt(i) as ViewPager;
					if (_viewPager != null)
						break;
				}
				if (_viewPager == null)
					return;

				var density = Resources.DisplayMetrics.Density;

				_circlePageIndicator = new CirclePageIndicator(base.Context);
				_circlePageIndicator.SetPadding(5, 5, 5, 5);
				_circlePageIndicator.Radius = 5*density;
				SetPageIndicatorTintColor();
				SetCurrentPageIndicatorTintColor();

				AddView(_circlePageIndicator);
				_circlePageIndicator.BringToFront();

			}