在Windows Phone 8应用程序上工作时,我们需要限制用户导航pivot。例如,只有前两个项目可用,直到用户对第二个项目进行选择,然后第三个项目被解锁,依此类推。
我尝试了几种方法,它们都发现了一件事--在事件处理程序中设置pivot.SelectedIndex (或pivot.SelectedItem)并不会改变pivot的可视化表示。
我的方法中缺少什么?
以下是示例代码,来自我尝试过的一个变体……
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;
}
}
}发布于 2013-10-30 22:07:24
现在不能访问可视化,但您是否尝试将第三个透视表项的可见设置为折叠,并在用户选择放置点时将其更改为可见?
https://stackoverflow.com/questions/19680393
复制相似问题