2010-11-23 2 views
0

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

<root> 
    <resultset> 
     <header> 
      <column> Col 1 </column> 
      <column> Col 2 </column> 
     </header> 

     <data> 
      <row> 
       <field>Value field 1</field> 
       <field>Value field 2</field> 
      </row> 
      <row> 
       <field>Value field 1</field> 
       <field>Value field 2</field> 
      </row> 
     </data> 
    </resultset> 
</root> 

Я пытаюсь отобразить заголовок в заголовок DataGrid, а строки к строкам ... Единственное, что я своего рода застрял, я потерял среди программные свойства, может кто-то просто дать мне подсказку, что нужно ухаживать?

Я пробовал делать:

myDataGrid.ItemsSource = myXmlDoc 

Но это не помогает ничего показывает вверх хех, я прочитал о каком-то «пути» свойство связывания, но я не могу найти его.

ответ

1

Предположим, у вас уже есть xmldataprovider с вашим источником Xml с именем myXMLDoc. , то вы можете привязать данные xml к вашим элементам управления WPF.

ItemsSource="{Binding Source={StaticResource myXMLDoc}, XPath=row}}" //bind "row" elements to your control 
+0

WOW Я не знал, что могу программировать выражения ... чувак, это потрясающе! Большое спасибо. Это дает мне строки (но еще пустые), но это лучше, чем то, что у меня было, прежде чем я собираюсь разобраться, что случилось. Опять же, спасибо – CoolStraw 2010-11-23 09:53:36

1

Это вы что искали?

http://joshsmithonwpf.wordpress.com/2007/06/04/binding-to-xml/

Я думаю, что вы хотите сделать, это подключить ItemsSource к XmlDataProvider (который можно создать в коде), с его XPath набор для /root/resultset/data/row. Затем для каждого элемента вы можете использовать, скажем Text = {Binding XPath=./field}.

Я немного опасаюсь деталей, так как я не сделал этого некоторое время, но, надеюсь, это поможет вам в правильном направлении.

+0

ОТПРАВИТЬ ОТВЕТ НА ВАШ ответ. Дело в том, что я хочу достичь этого ** программно ** (не могу сделать это в XAML из-за цели приложения/arch.). И дело в том, что программным способом я больше не могу использовать привязывающие выражения, поэтому я теряю все эти свойства, я читаю статью MSN о привязке данных, но это все еще запутывает. (** new ** to wpf кстати: p) – CoolStraw 2010-11-23 09:49:26

Смежные вопросы