diff --git a/PicotPage.Android/Renderer/ViewPanelRenderer.cs b/PicotPage.Android/Renderer/ViewPanelRenderer.cs index 692a590..2ca5b3d 100644 --- a/PicotPage.Android/Renderer/ViewPanelRenderer.cs +++ b/PicotPage.Android/Renderer/ViewPanelRenderer.cs @@ -85,7 +85,7 @@ public class CustomPagerAdapter : PagerAdapter { private ViewPanel _customViewPage; private Context _context; - private IList _views = new List< Xamarin.Forms.View>(); + private IList _views = new List(); public CustomPagerAdapter(Context context, ViewPanel customViewPage) { _customViewPage = customViewPage; diff --git a/PivotView/PivotPagePortable/Pivot/PivotPage.cs b/PivotView/PivotPagePortable/Pivot/PivotPage.cs index c52f914..f3a4aeb 100644 --- a/PivotView/PivotPagePortable/Pivot/PivotPage.cs +++ b/PivotView/PivotPagePortable/Pivot/PivotPage.cs @@ -46,6 +46,16 @@ public PivotPage() _viewPanel.SelectChanged += _viewPanel_SelectChanged; } + public event EventHandler MainViewChanged; + + public int MainViewIndex + { + get + { + return _viewPanel.CurrentIndex; + } + } + private void _viewPanel_SelectChanged(object sender, SelectedPositionChangedEventArgs e) { var index = (int)e.SelectedPosition; @@ -54,6 +64,8 @@ private void _viewPanel_SelectChanged(object sender, SelectedPositionChangedEven { _headerList.SelectedIndex = index; } + + MainViewChanged?.Invoke(this, new SelectedPositionChangedEventArgs(MainViewIndex)); } private void headerList_ItemSelected(object sender, SelectedItemChangedEventArgs e) @@ -124,17 +136,17 @@ static void OnHeadersPropertyChnaged(BindableObject sender, object oldValue, obj /// /// PivotPage第二组成部分Views /// - public static readonly BindableProperty ViewsProperty = BindableProperty.Create("Views", typeof(IEnumerable), typeof(PivotPage), null, propertyChanged: OnViewsPropertyChnaged); - public IEnumerable Views + public static readonly BindableProperty ViewsProperty = BindableProperty.Create(nameof(Views), typeof(IList), typeof(PivotPage), null, propertyChanged: OnViewsPropertyChnaged); + public IList Views { - get { return (IEnumerable)this.GetValue(ViewsProperty); } + get { return (IList)this.GetValue(ViewsProperty); } set { SetValue(ViewsProperty, value); } } static void OnViewsPropertyChnaged(BindableObject sender, object oldValue, object newValue) { var pivot = sender as PivotPage; - pivot._viewPanel.PanelChildren = (IEnumerable)newValue; + pivot._viewPanel.PanelChildren = (IList)newValue; } } } diff --git a/PivotView/PivotPagePortable/Pivot/ViewPanel.cs b/PivotView/PivotPagePortable/Pivot/ViewPanel.cs index 72dd508..26f1aff 100644 --- a/PivotView/PivotPagePortable/Pivot/ViewPanel.cs +++ b/PivotView/PivotPagePortable/Pivot/ViewPanel.cs @@ -30,10 +30,10 @@ public ViewPanel() /// /// 支持数据绑定的Child View集合 /// - public static readonly BindableProperty ChildrenProperty = BindableProperty.Create(nameof(PanelChildren), typeof(IEnumerable), typeof(ViewPanel), propertyChanged: OnChildrenChanged); - public IEnumerable PanelChildren + public static readonly BindableProperty ChildrenProperty = BindableProperty.Create(nameof(PanelChildren), typeof(IList), typeof(ViewPanel), propertyChanged: OnChildrenChanged); + public IList PanelChildren { - get { return (IEnumerable)this.GetValue(ChildrenProperty); } + get { return (IList)this.GetValue(ChildrenProperty); } set { SetValue(ChildrenProperty, value); } } /// @@ -105,7 +105,7 @@ protected override void LayoutChildren(double x, double y, double width, double } public event EventHandler SelectChanged; - public static readonly BindableProperty CurrentIndexProperty = BindableProperty.Create("CurrentIndex", typeof(int), typeof(ViewPanel), 0); + public static readonly BindableProperty CurrentIndexProperty = BindableProperty.Create(nameof(CurrentIndex), typeof(int), typeof(ViewPanel), 0); public int CurrentIndex { get { return (int)this.GetValue(CurrentIndexProperty); }