LINQ to XML запрос из нескольких элементов ListBox - PullRequest
1 голос
/ 27 июня 2011

Мне нужен пример запроса linq to xml.

У меня есть два ListBox с SelectionMode, установленным на Multiple.

Мой запрос для заполнения первого ListBox:

var query = doc.Root.Descendants("Articles")
                    .OrderBy(b => b.Element("Category").Value)
                    .Select(b => b.Element("Category").Value)
                    .Distinct();

и связывание его с:

lbxItems.DataSource = query;
lbxItems.DataBind();

Итак, у меня есть все значения в первом ListBox, и когда я выбираю элемент из этого ListBox, я хочу заполнить второй ListBox.

Итак, SelectedIndexChanged У меня есть другой запрос:

var query = doc.Root.Descendants("Articles")
                .Where(b => b.Element("Category").Value.Equals(lbxItems.SelectedValue))
                    .OrderBy(b => b.Element("SubCategory").Value)
                    .Select(b => b.Element("SubCategory").Value)
                    .Distinct();

Это работает, если я выбираю один элемент, но мне нужен запрос, который делает то же самое, но из нескольких выбранных элементов.

Спасибо.

1 Ответ

2 голосов
/ 27 июня 2011

Попробуйте изменить условие where следующим образом:

.Where(b => lbxItems.Items
    .Cast<ListItem>() // needs a cast
    .Where(i => i.Selected)
    .Select(i => i.Value)
    .Contains(b.Element("Category").Value))

Идея состоит в том, чтобы определить, какие элементы выбраны, и посмотреть, относится ли значение вашей категории к выбранным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...