Bonjour,
Je suis actuellement entrain de développer une petite application, par plaisir et pour me familiariser avec le WPF.
Mais je sèche sur un "problème" de binding. J'ai actuellement 2 listbox dans mon appli, dont les item sont liés au fichier xml suivant.
La première liste affiche la donnée "Mainserver Loc", la deuxième les données "world" correspondantes à la localisation de la première liste.
Jusque là, pas de soucis.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?xml version="1.0" encoding="utf-8" ?> <Worlds> <MainServer Loc="fr"> <World Id="65" Name="aaaa"/> <World Id="70" Name="bbbb"/> <World Id="58" Name="cccc"/> <World Id="59" Name="dddd"/> </MainServer> <MainServer Loc="en"> <World Id="65" Name="aaaa"/> <World Id="70" Name="bbbb"/> </MainServer> <MainServer Loc="de"> <World Id="65" Name="aaaa"/> <World Id="70" Name="bbbb"/> <World Id="58" Name="cccc"/> </MainServer> </Worlds>
Là où je sèche, c'est que j'aimerai faire un binding des données "World Id et World Name", sélectionnées dans la 2ème liste, dans le fichier xml ci-dessous.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <Settings> <!--Account settings--> <Player Name="toto" Password="abcde" ServerLoc="en" WorldId="70" WorldName="aaaa"/>
Actuellement, j'ai le code xaml suivant pour ma deuxième listbox.
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <ListBox Name="_worldList" DataContext="{Binding ElementName=_serverLocList, Path=SelectedItem}" ItemsSource="{Binding XPath=World, Mode=OneWay}" DisplayMemberPath="@Name" SelectedValuePath="@Id" SelectedValue="{Binding ElementName=AccountSettings, XPath=Player/@WorldId, Mode=TwoWay}" IsSynchronizedWithCurrentItem="False" SelectionMode="Single" IsEnabled="{Binding IsChecked, ElementName=_lockParameterMenuItem, Converter={StaticResource Negate}}" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" Grid.Column="1"/>
Avec ce code, j'arrive à faire un binding soit de "world Id", soit de "World Name", mais pas des deux. J'ai essayé en faisant un binding sur le selecteditem de la listbox, mais cela renvoi un xmlobject, ce qui est logique (mais pas pour moi au début ).
J'ai pas mal cherché sur le net, sans trouver de solutions.
J'ai donc besoin de vos lumières. Est ce possible à faire en xaml (multibiding?)?
Sinon quelles autres solutions simples pourrai je utiliser?
Merci.
Partager