Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Binding и XML, динамическое связывание в коде 
:(
    Опции темы
San4o_Pan4o
Дата 13.9.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Всем привет! У меня возникли проблемы при привязке данных. Я динамически получаю с web-сервиса некий xml-текст, и его bind'ю к ListView в коде. Соответсвенно, в шаблоне для ListViewItem'а мне нужно уточнить Binding выражением XPath. Содержимое я успешно извлекаю, но мне еще нужен идентификатор, который лежит в атрибуте с именем rdf:about. Насколько я знаю, если тег имеет вид <person rdf:about="001" >...</person>, то чтобы достучаться до 001 нужно просить что-то вроде "person/@rdf:about". Но мне в ответ лишь пустая строка. Где я ошибаюсь? Может дело в префиксе атрибута?

Код такой:
Код

if (search_field.Text != "")
            {
                string xmlresp = dc.SearchForItem(search_field.Text);
                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(xmlresp);
                main_ListView.ItemsSource = xdoc.DocumentElement.ChildNodes[1];
            }


Шаблон для ListViewItem:
Код

<DataTemplate>
  <Border Width="Auto" Height="100" x:Name="singleItem" Background="Beige" MouseLeftButtonDown="singleItem_MouseLeftButtonDown" CornerRadius="5">
    <Border.ToolTip>
      <Label Content="{Binding XPath='person/@rdf:about'}" />
    </Border.ToolTip>
    <StackPanel>
      <!--Image Source="{Binding}" /-->
      <Label Content="{Binding XPath='name'}" />
    </StackPanel>
  </Border>
</DataTemplate>


Ну и для полноты картины, пример ответа от сервиса, на котором я пытаюсь это все отладить:
Код

<dataresponse rdf:dummy="" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <request>
    <param name="c">Search</param>
    <param name="t">person</param>
    <param name="s">м</param>
  </request>
  <data>
    <person rdf:about="mag_090911114613_1001">
      <name xml:lang="ru">Мыльников Сергей Павлович</name>
    </person>
    <person rdf:about="mag_090911114613_1003">
      <name xml:lang="ru">Марчук Александр Гурьевич</name>
    </person>
  </data>
</dataresponse>

PM MAIL   Вверх
San4o_Pan4o
Дата 13.9.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Разобрался с запросом. Он должен быть таким: /dataresponse/data/person/@*[namespace-uri()='http://www.w3.org/1999/02/22-rdf-syntax-ns#' and local-name()='about']
Теперь другой вопрос, как такой запрос запихать в {Binding XPath=***}? XAML не позволяет внутри кавычки делать..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.