【问题标题】:Unable to select multiple items from a listbox in a Windows Phone 7 application无法从 Windows Phone 7 应用程序的列表框中选择多个项目
【发布时间】:2010-08-23 06:34:20
【问题描述】:

如何从 Windows Phone 7 应用程序的列表框中选择多个项目? 例如

listboxName.SelectedIndex = 0;
listboxName.SelectedIndex = 1;
listboxName.SelectedIndex = 2;

上面的代码选择了 2 而我需要选择所有这三个。

我需要预先选择的值以数组的形式提供给我,例如 {真、真、真、假、假}

所以我尝试使用 IsSelected 如下所示...不起作用。

     int i = 0;
     foreach (ListBoxItem currentItem in listboxName.SelectedItems)
            {
                if (tagindexeselected[i])
                {
                    currentItem.IsSelected = true;
                }
                i++;
            }

在列表框中选择多个项目的正确方法是什么?

【问题讨论】:

    标签: c# xaml windows-phone-7 listboxitem multipleselection


    【解决方案1】:

    很难说只有一个最好的方法 - 这取决于您如何填充列表框等。首先,请确保您的列表框的选择模式设置为多个或扩展。

    一种选择是使用 ListBox 的 SelectedItems 集合:

            listBox1.SelectedItems.Add(listBox1.Items[0]);
            listBox1.SelectedItems.Add(listBox1.Items[1]);
            listBox1.SelectedItems.Add(listBox1.Items[2]);
    

    还要注意,在上面的示例中,您正在迭代 SelectedItems 集合 - 而不是 Items 集合。如果未选择任何内容,则为空集合。此外,如果您的列表框 ItemsSource 不是一系列 ListBox 项(您可以将 itemsSource 设置为几乎任何枚举),则在运行 foreach 语句时会收到 InvalidCastException。

    【讨论】:

      【解决方案2】:

      foreach(lstServer.SelectedItems 中的 DataRowView 项) {

                      string WebServerIP = item[lstServer.DisplayMember].ToString();
                      string WebServerUrl = item[lstServer.ValueMember].ToString();
                      _WebObjIgent.Url = WebServerUrl;
      
                  }
      

      注意:lstServer 是窗口应用程序的列表框。通过使用 Displaymember 和 valuemember 属性,您可以访问列表框的值和文本。

      【讨论】:

        猜你喜欢
        • 2014-08-30
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        • 1970-01-01
        • 2011-03-29
        相关资源
        最近更新 更多