8 messaggi dal 02 aprile 2008
Salve a tutti,
ho iniziato da poco ad usare expression blend 2 con VS 2005(C#) e o un problema riguardante il caricamento di una treeview..
In poche parole, dovrei creare una treeview che abbia come nodi padri un campo contenuto in un database xml, mentre i relativi figli sono contenuti in un altro database xml.I due file xml sono correlati tramite chiave esterna.
In sintesi ho:
1 file xml che contiene vari campi tra cui una "DESCRIZIONE"(ovvero il nome dei nodi padri) e un campo "ID";
il secondo xml contiene (oltre ad altri campi) un campo "DESCRIZIONE"(ovvero il nome dei relativi figli) e un campo "RIFERIMENTO ID" ( ovvero la chiave esterna);
qualcuno mi saprebbe aiutare?
Ringrazio anticipatamente
Zao Zao
Modificato da Px| il 10 settembre 2008 09.58 -
Non sono esperto di blend ma ti posso dirlo come farlo da Xaml.
Sull'ItemsDataSource dell'HierarchicalTemplate devi impostare una sorgente dati xml filtrata con l'ID di ogni riga.
Fai un Binding con un converter tuo per caricare il nodo stesso. Dentro il converter carichi il tuo secondo XML (magari una sola volta) e con XPath o Linq To Xml filtri per l'id di quella riga e restituisci i nodi.
Se vuoi posso scriverti qualcosa per farti capire

Ciao

Il mio blog
Homepage
8 messaggi dal 02 aprile 2008
si grazie mi sarebbe molto utile!!!!Comunque GRAZIE veramente!!
Scritto al volo:

<Window.Resources>
   <n:MyConverter x:Key="converter" />
   <HierarchicalDataTemplate x:Key="item" ItemsSource="{Binding Converter={StaticResource converter}">
...
 </HierarchicalDataTemplate>
</Window.Resources>

<TreeView ItemsSource="{Binding XPath=/items/item}" ItemTemplate="{StaticResource item}">
...


MyConverter è una tua classe registrata che implementa IValueConverter (come questo http://www.winfxitalia.com/script/29/StringFormatConverter-Binding-WPF.aspx) solo che value in questo caso è ogni nodo del primo xml, un XmlNode.
Nell'implementazione quindi carichi l'attributo che ti interessa e restituisci i nodi da caricare sul secondo livello. Per esempio

return ((XmlElement)value).SelectNodes("/items/item[@riferimento = 1]");

Così il secondo livello cicla sulla lista dei nodi

Ciao

Il mio blog
Homepage
8 messaggi dal 02 aprile 2008
Grazie mille!!!!!!!GRANDE!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.