我在弹出控件上使用WP7 Tookit ListPicker(2月发行版)。我已经困住了Back按钮,所以我可以关闭弹出窗口。
如果我在弹出模式下打开ListPicker时按下后退按钮,我的后退按钮事件处理程序在ListPicker处理它之前触发,因此ListPicker和我的弹出窗口都在关闭。
我想到处理它的一种方法是检查并查看弹出窗口上是否有任何ListPickers打开,如果是这样关闭并取消导航(弹出窗口上的控件是动态添加的,所以我必须通过枚举弹出子控件检查)但我找不到一种方法来查看ListPicker是打开还是关闭它。
所以我的问题是a)有没有办法在后退按钮处理程序中处理这个问题,如果没有,b)如何检查ListPicker是否打开。
答案 0 :(得分:1)
在弹出控件的BackKeyPress
回调中添加以下检查:
if( myListPicker.ListPickerMode == ListPickerMode.Normal ) {
// Close popup
// Cancel navigation
e.Cancel = true;
}
当ListPickerMode
为Expanded
或Full
时,ListPicker
将捕获后退键按下事件并自行关闭。
修改强>
根据@ SteveChadbourne的评论,以下工作如下:
if( myListPicker.ListPickerMode != ListPickerMode.Normal ) {
// Close the ListPicker
myListPicker.ListPickerMode = ListPickerMode.Normal;
// Cancel navigation
e.Cancel = true;
}