protected virtual void OnBindDetailsViewHolder(RecyclerView.ViewHolder holder, View detailsContent, int position)
        {
            var visibility = ExpandedPosition == position ? ViewStates.Visible : ViewStates.Gone;

            if (detailsContent != null)
            {
                detailsContent.Visibility = visibility;
            }

            if (visibility == ViewStates.Visible)
            {
                var e = new WeatherDailyItemEventArgs(position);
                OnItemClick(e);

                var daily  = Daily?[position];
                var hourly = daily?.Hourly?.ToArray();
                OnBindDetailsViewHolder(holder as WeatherDailyItemViewHolderBase, position, hourly);

                //http://stackoverflow.com/questions/26875061/scroll-recyclerview-to-show-selected-item-on-top
                //RecyclerView?.ScrollToPosition(position);
                //RecyclerView?.SmoothScrollToPosition(position);
                RecyclerView?.PostDelayed(() => { RecyclerView?.SmoothScrollToPosition(position); }, 300);
            }
        }
 protected virtual void OnItemClick(WeatherDailyItemEventArgs e)
 {
     ItemClick?.Invoke(this, e);
 }