如何在全屏页面中显示组合框的所有项目

本文关键字:组合 项目 显示 | 更新日期: 2023-09-27 18:00:47

我正在一个通用应用程序项目上为windows phone 8.1创建组合框,但我希望始终在全屏页面上显示所有项目。在windows手机8上我做

ListPicker.ExpansionMode = ExpansionMode.FullScreenOnly;

但是,在WindowsPhone8.1的组合框中,我找不到选项。

我该如何解决这个问题?

谢谢!

如何在全屏页面中显示组合框的所有项目

WP8.1中的组合框控件将决定在全屏或下拉列表中显示项目。当您的项目计数>5时,它将显示在全屏中。OtherWise,它将显示在下拉列表中。我们无法通过代码更改它。

回答较晚,但希望能帮助到其他人。

默认情况下,只有当项目数超过5个项目时,组合框才会显示长列表。如果需要显示组合框的全屏,可以将列表选择器弹出按钮附加到按钮上,以代替组合框。我想这将是一个理想的解决方案。并且它几乎满足了长列表的所有实现

如果(组合框中有3个项目){同时在内容为"的组合框中添加3个项目}

添加此处理程序:

private void DoSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox cb = (sender as ComboBox);
    if (cb.SelectedIndex > -1)
    {
        string s = (cb.SelectedValue as ComboBoxItem).Content as string; 
        if (s == " ")
        {
            cb.SelectedIndex = cb.GetLastIndex();
        }
    }
    cb.SetLastIndex(cb.SelectedIndex);
}
public static class Extensions
{
    private static Dictionary<ComboBox, int> _lastIndex = new Dictionary<ComboBox, int>();
    public static int GetLastIndex(this ComboBox me)
    {
        return _lastIndex.ContainsKey(me) ? _lastIndex[me] : -1;
    }
    public static void SetLastIndex(this ComboBox me, int NewValue)
    {
        if (_lastIndex.ContainsKey(me))
            _lastIndex[me] = NewValue;
        else
            _lastIndex.Add(me,NewValue);
    }
}