弹出窗口上的WP7 ListPicker导致后退按钮问题

时间:2011-03-03 03:36:17

标签: windows-phone-7 toolkit

我在弹出控件上使用WP7 Tookit ListPicker(2月发行版)。我已经困住了Back按钮,所以我可以关闭弹出窗口。

如果我在弹出模式下打开ListPicker时按下后退按钮,我的后退按钮事件处理程序在ListPicker处理它之前触发,因此ListPicker和我的弹出窗口都在关闭。

我想到处理它的一种方法是检查并查看弹出窗口上是否有任何ListPickers打开,如果是这样关闭并取消导航(弹出窗口上的控件是动态添加的,所以我必须通过枚举弹出子控件检查)但我找不到一种方法来查看ListPicker是打开还是关闭它。

所以我的问题是a)有没有办法在后退按钮处理程序中处理这个问题,如果没有,b)如何检查ListPicker是否打开。

1 个答案:

答案 0 :(得分:1)

在弹出控件的BackKeyPress回调中添加以下检查:

if( myListPicker.ListPickerMode == ListPickerMode.Normal ) {
  // Close popup

  // Cancel navigation
  e.Cancel = true;
}

ListPickerModeExpandedFull时,ListPicker将捕获后退键按下事件并自行关闭。

修改

根据@ SteveChadbourne的评论,以下工作如下:

if( myListPicker.ListPickerMode != ListPickerMode.Normal ) {
  // Close the ListPicker
  myListPicker.ListPickerMode = ListPickerMode.Normal;

  // Cancel navigation
  e.Cancel = true;

}