Sehr geehrte Damen und Herren!
Ich habe eine XML-Datei, die im XAML meines C#-Projektes angezeigt werden soll.
Im Internet finde ich nur eine Lösung mittels C#-Code (z.B.: hier)
Ich möchte dies aber genau im XAML mittels Databinding machen (mittels XmlDataProvider)
<XmlDataProvider
x:Key="menuDataProvider"
Source="menu.xml"
XPath="/tmp/Test" />
Danke schon im Voraus für eure Lösungsansätze.
mfg. Hannes
Nicht so förmlich. Sag einfach Hallo!
Du hast unter WinForms aka namespace System.Windows.Forms gepostet. WPF ist das nächste Subforum.
XAML läuft unter
https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls .
Deshalb gibt es regelmäßig Konflikte, wenn Du Forms mit XAML und umgekehrt versuchst zu vermengen.
Es ist möglich, läuft m. W. nicht stabil:
https://stackoverflow.com/questions/16482288/c-sharp-windows-forms-and-xaml
Der Artikel unter code project stammt aus dem Jahr 2007.
Du müsstest ein XSLT durchführen um aus der XML Datei ein gültiges XAML Format zu erhalten. - Viel zu aufwendig.
https://msdn.microsoft.com/de-de/library/ms747430(v=vs.110).aspx
Deshalb würde ich händisch gleich das richtige Format wählen bzw umschreiben.
Grüße
Falschen Post erwischt, auf den du antwortest? Das ergibt gerade so gar keinen Sinn...
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
So, hatte ganz vergessen, dass ich hier noch was Konstruktives beitragen wollte.
a) es ist ziemlich schwer einzuschätzen, was du eigentlich machen möchtest. Anhand des von dir gesetzten Titels gehe ich aber mal davon aus, dass du eine Menüstruktur in einer XML-Datei hast, und diese Menüstruktur nun eben gern per XAML einbinden möchtest. Richtig?
Falls ja:
b) XmlDataProvider ist goldrichtig. Dazu brauchst du nur noch ein HierarchicalDataTemplate, mit dessen Hilfe festgelegt wird, WIE aus den Daten aus dem XmlDataProvider ein Menüpunkt werden soll, und natürlich ein Menü.
<HierarchicalDataTemplate x:Key="----DataTemplate-Ressourcenname----" ItemsSource="{Binding XPath=menu}">
<AccessText Text="{Binding XPath=@name}"/>
</HierarchicalDataTemplate>
XPath natürlich anpassen an dein XML (das du uns leider vorenthalten hast).
...das Menü dann an den XmlDataProvider und das Template binden:
<Menu ItemsSource="{Binding Source={StaticResource ----XmlDataProvider-Resourcenname----}}" ItemTemplate="{StaticResource ----DataTemplate-Ressourcenname----}"/>
Das war's dann schon.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Das hatte ich schon unter Kontext-Menü erstellen gepostet.
Warum Hannes1234 jetzt noch mal eine Frage dazu stellt, obwohl er "Problem gelöst" geschrieben hat, erblickt sich mir nicht. 🤔
(Sorry, hatte ich nicht gesehen 😮)){gray}
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Hallo zusammen,
ich hab mir mal geschlossen, weil es ja das gleiche ist wie bei Wie kann ich mit WPF ein Kontext-Menü erstellen? jedoch hier Infos sind, die nicht gelöscht werden sollen.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck