如何在数据加载事件中添加新的数据透视表项

时间:2014-01-29 05:39:48

标签: c# windows-phone-8

每次用户滑动数据透视表项时,我都会尝试添加新的数据透视表项。添加新项目并删除旧项目。 (Pivot Headers和Items在首次加载时正确绑定)。

我在加载枢轴事件

中有以下代码
private void Pivot_LoadingPivotItem(object sender, PivotItemEventArgs e)
        {
            try
            {
                ++App.SuraID;
                p = new PageViewModel();

                //this.pv.DataContext = p.Pages;
                this.pv.ItemsSource = p.Pages;
                p.OnPropertyChanged("Pages");
                pv.UpdateLayout();
            }
            catch (Exception ex)
            {

            }
        }

和PageViewModel构造函数

public PageViewModel()
        {
            Pages = new ObservableCollection<ArticlePage>();
            DataSource ds = new DataSource();
            List<ArabicTextWithTranslation> ls = null;
            Chapter ch = ds.getChapter(App.SuraID);
            ls = ds.getArabicTextWithTranslation(ch);
            if (App.SuraID == 1) // Just to make Pivot on first run
            {
                Pages.Add(new ArticlePage() { Header = ch.SuraName, ArticleList = new ObservableCollection<Article> { new Article() { MyChapter = ch } } });
                Pages.Add(new ArticlePage() { Header = ch.SuraName, ArticleList = new ObservableCollection<Article> { new Article() { MyChapter = ch } } });//
            }
            else
                Pages.Add(new ArticlePage() { Header = ch.SuraName, ArticleList = new ObservableCollection<Article> { new Article() { MyChapter = ch } } });//
        }

如何将新的枢轴项添加到枢轴控制?

1 个答案:

答案 0 :(得分:0)

您实际上需要在枢轴控件中添加和删除枢轴项! 但是有一个很酷的助手类可以用来简化它......看看这里解释的详细例子:http://www.ree7.fr/blog/2014/01/data-binding-pivotitem-visibility-an-helper/

如果你想要一些更多的控制,你可以自己做,这个的一个工作例子可以在我的github项目中看到:https://github.com/Depechie/GF13/blob/master/AppCreativity.GentseFeesten.WP8/AppCreativity.GentseFeesten.WP8/View/MainPage.xaml.cs#L51 在这里,我根据用户在页面上选择的内容在集合中添加或删除数据透视项。