Salut à tous !
Voilà, pour mon application, j'aimerais définir des "vues", chaque vue contenant un certain nombre de pages xaml dockées ou on veut. Pour ça, je me suis dit on va ruser: je vais tout définir dans un fichier XML, et faire de beaux bidings.
Voilà mon fichier XML:
Bon, et mon xaml ressemble à ça:
Code : 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 <?xml version="1.0" encoding="utf-8" ?> <Views> <View Title="title1"> <Page Source="RedPage.xaml" Dock="left"/> <Page Source="BluePage.xaml" Dock="right"/> </View> <View Title="title2"> <Page Source="RedPage.xaml" Dock="left"/> <Page Source="GreenPage.xaml" Dock="top"/> <Page Source="BluePage.xaml" Dock="right"/> </View> ... </Views>
là y a la ressource:
là un comboBox bidé au titre de la vue, qui me permet de choisir quelle vue afficher:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <Window.Resources> <XmlDataProvider x:Key="views" Source="views.xml"/> </Window.Resources>
Et enfin, le point qui me pose souci, l'affichage des pages qu'on veut:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <ComboBox x:Name="viewList" ItemsSource="{Binding Source={StaticResource views}, XPath=Views/View}" DisplayMemberPath="@Title" SelectedIndex="0"/>
Et là, j'ai des vieilles exceptions, je vois pas trop comment formater le truc pour que ça marche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <DockPanel DataContext="{Binding ElementName=viewList, Path=SelectedItem}"> <ItemsControl ItemsSource="{Binding Source=@View/Page}"> <DataTemplate> <Frame Source="@Source" /> </DataTemplate> </ItemsControl> </DockPanel>
Partager