CustomMessageBox:如何在PickerMode.Expanded中使用ListPicker?

时间:2013-10-24 07:50:41

标签: windows-phone-8 listpicker wptoolkit

我尝试在PickerMode.Expanded中使用带有listpicker的CustomMessageBox,但我遇到了问题。

在更改ItemsSource = new string [] {“5分钟”,“10分钟”,“1小时”,“4小时”,“1天”,“2天”后,运行CustomMessageBoxSample可以看到相同的问题“,”10天“},即超过5个元素,因此默认情况下将在FullMode中打开。

在这种情况下,保持其他代码示例不变,单击listpicker将打开fullMode选择页面,但在选择之后,整个CustomMessageBox将关闭(您无法决定按其左侧或右侧按钮)。  我尝试按如下方式更改代码,但在这种情况下,fullMode选择页面在messageBox后面打开,无法看到,也无法进行选择(你可以看到它,灰色,如果你放了很多项目,所以它有一个长项目列表,因此其中一些项目可以显示在前台消息框下方的背景中。

messageBox.Dismissing += (s1, e1) =>
            {

                //if ((listPicker.ListPickerMode == ListPickerMode.Expanded) 
                if ((listPicker.ListPickerMode == ListPickerMode.Expanded) || (listPicker.ListPickerMode == ListPickerMode.Full))
                {
                    e1.Cancel = true;
                }
            };

我还尝试使用以下代码但是fullMode选择页面,即使现在可见,但它未启用,因此无法进行选择....

messageBox.Dismissing += (s1, e1) => {
 if (listPicker.ListPickerMode == ListPickerMode.Expanded) 
  {
     e1.Cancel = true;
  }
 else if (listPicker.ListPickerMode == ListPickerMode.Full)
  {
      e1.Cancel = true;
      messageBox.Visibility = Visibility.Collapsed;
      //listPicker.IsEnabled = true; //???
      // listPicker.Focus(); //???
      // listPicker.UpdateLayout(); //???
  }
};

listPicker.SelectionChanged += (s3, e3) => {
  if (listPicker.ListPickerMode == ListPickerMode.Full) {
    messageBox.Visibility = Visibility.Visible;
  }
};

有什么建议吗?

由于 Enzo Contini

0 个答案:

没有答案