浏览Windows Phone 8 Pivot

时间:2013-10-30 10:59:50

标签: windows-phone-8

在使用Windows Phone 8应用程序时,我们需要限制用户导航数据透视。 例如,只有前两个项目可用,直到用户在第二个项目上进行选择,然后第三个项目被解锁,依此类推。

我尝试了几种方法,并且所有这些方法偶然发现 - 在事件处理程序中设置pivot.SelectedIndex(或pivot.SelectedItem)不会改变数据透视的可视化表示。

我的方法缺少什么?

以下是示例代码,来自我尝试的其中一个变体......

    private void ReservationPivot_UnloadingPivotItem(object sender, PivotItemEventArgs e)
    {

        if (previousSelectedIndex != ((Pivot)sender).Items.IndexOf(e.Item) && !pivotRedirect)
            previousSelectedIndex = ((Pivot)sender).Items.IndexOf(e.Item);
        else if (previousSelectedIndex == ((Pivot)sender).Items.IndexOf(e.Item))
            return;

        object tmp;

        PhoneApplicationService.Current.State.TryGetValue("PickupAddress", out tmp);

        if (e.Item == ((Pivot)sender).Items[1] && tmp == null && !pivotRedirect)
        {
            MessageBox.Show("Please, select pickup point!");
            pivotRedirect = true;
            ((Pivot)sender).SelectedIndex = previousSelectedIndex;
            ((Pivot)sender).SelectedItem = ((Pivot)sender).Items[1];
            return;
        }

        PhoneApplicationService.Current.State.TryGetValue("DropOffAddress", out tmp);

        if (e.Item == ((Pivot)sender).Items[2] && tmp == null && !pivotRedirect)
        {
            MessageBox.Show("Please, select dropoff point!");
            pivotRedirect = true;
            ((Pivot)sender).SelectedIndex = previousSelectedIndex;
            ((Pivot)sender).SelectedItem = ((Pivot)sender).Items[2];
            return;
        }

        if (pivotRedirect)
        {
            if (((Pivot)sender).SelectedIndex != previousSelectedIndex)
            {
                pivotRedirect = false;
                ((Pivot)sender).SelectedIndex = previousSelectedIndex;
            }

        }


    }

1 个答案:

答案 0 :(得分:0)

现在不能访问visual,但是你尝试将第三个枢轴项目的可见设置为折叠,并在用户选择dropooff point时将其更改为可见吗?