Использование WPF для отображения XML - PullRequest
1 голос
/ 15 июля 2010

У меня есть небольшой проект, для которого, я думаю, идеально подойдет WPF, однако у меня не так много времени, поэтому я ищу информацию о целесообразности и указатели. Я пытаюсь отобразить большое количество элементов из XML-документа, и из того, что я прочитал до сих пор, я считаю, что было бы возможно:

Использовать документ XML в качестве источника данных.

Загрузка каждого элемента из XML в объект, который затем добавляется в коллекцию. (Можно ли привязать XML прямо к коллекции?)

Используя коллекцию, свяжите ее с представлением.

Каждый объект в представлении отображается аналогично тому, как в таблице HTML. (Использовать пользовательский элемент управления в stackPanel по вертикали?)

В коллекции могут быть тысячи объектов, поэтому должна быть возможность отображать только 50 страниц с возможностью сортировки и поиска. (Используя collectionView?)

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

Если бы кто-нибудь мог сказать мне, если это возможно, направьте меня в правильном направлении или выделите любые потенциальные проблемные области, которые будут оценены.

Спасибо.

1 Ответ

1 голос
/ 15 июля 2010

Рассмотрим этот пример XML-файла:

<Employees>
  <Employee ID="101">
    <Name>Ram</Name>
    <Salary>5000</Salary>
  </Employee>
  <Employee ID="102">
    <Name>Siva</Name>
    <Salary>7000</Salary>
  ...
</Employee>

Вы можете загрузить данные из XML-файла следующим образом:

XDocument doc = XDocument.Load(yourFilePath);

Затем вы можете запросить их следующим образом:

var filterQuery = from i in doc.Descendants("someNode")
                  where (float)i.Element("Salary") >= 6000.00
                  orderby (string)i.Element("Name")
                  select (string)i.Element("Name");

Создать из него ObservableCollection

var filteredList = new ObservableCollection(filterQuery);

Свяжите это с вашим ListView или другой коллекцией в xaml.

Вы можете реализовать логику сортировки и поиска на docи в любое время повторно заполнить свою коллекцию ObservableCollection, и изменения будут автоматически отражены в ListView.

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