IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Lire fichier XML présent dans dossier utilisateur/appdata/roaming


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut Lire fichier XML présent dans dossier utilisateur/appdata/roaming
    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
    18
    19
    20
    21
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid.Resources>
                <DataTemplate x:Key="SystemTemplate">
                    <Label Content="{Binding XPath=Name}"/>
                </DataTemplate>
            </Grid.Resources>
            <Grid.DataContext>
                <XmlDataProvider x:Name="SystemData" Source="Systems.xml" XPath="Emulators/System" />
            </Grid.DataContext>
            <ListBox Height="244" HorizontalAlignment="Left" Margin="12,12,0,0" Name="ListBox1" VerticalAlignment="Top" Width="167"
                     ItemsSource="{Binding}"
                     ItemTemplate="{StaticResource SystemTemplate}"
                     IsSynchronizedWithCurrentItem="True"
                     Visibility="Visible" SelectionMode="Single">
             </ListBox>
        </Grid>
    </Window>
    Bonjour, j'ai fait un "bind" (lien) avec un fichier XML pour peupler une Listbox.
    Cela marche bien..mais il faut dire que j'accède au fichier XML en tant que ressource, pour l'instant!

    Ce que je voudrais, c'est le lire depuis un dossier particulier: le dossier 'roaming' présent dans le dossier "Utilisateurs" (c'est là que sont écrits les fichiers utilisateurs...et donc j'aimerais que ce soit là qu'il soit sauvés également!Comment dois-je donc adapté la partie 'Source=""' de cette ligne pour faire référence au dossier utilisateur/appdata/roaming ?

    J'espère être assez clair..merci pour toute aide!!

  2. #2
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Salut,

    Le mieux serait de créer l'objet XmlDataProvider en c# (ou vb) est d'assigner la propriété Source.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XmlDataProvider data = new XmlDataProvider();
    data.Source = new Uri(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/NomFichier.xml");

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    D'accord,
    Je fais comme tu dis dans la partie VB..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Class MainWindow 
        Dim data As XmlDataProvider = New XmlDataProvider()
     
        Private Sub MainWindow_Initialized(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Initialized
            data.Source = New Uri(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/Systems.xml")
        End Sub
    End Class
    mais ensuite comment dois-je utiliser/modifier la partie XAML pour que cela soit pris en compte, stp?

  4. #4
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Tu peux faire comme cela :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    MaGrid.DataContext = data; // MaGrid nom de la grille déclarée en xaml

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Merci pour ton aide précieuse..et rapide!!

    Pour la partie VB, j'ai donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Class MainWindow 
        Dim data As XmlDataProvider = New XmlDataProvider()
        Private Sub MainWindow_Initialized(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Initialized
            data.Source = New Uri(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\nomDeMonApplication\nomDeMonXML.xml")
            data.XPath = "Emulators/System"
            Grid1.DataContext = data
        End Sub
    End Class
    Et pour la partie XAML, je n'ai plus que:
    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
    18
    19
     
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid.Resources>
                <DataTemplate x:Key="SystemTemplate">
                    <Label Content="{Binding XPath=Name}"/>
                </DataTemplate>
            </Grid.Resources>
            <ListBox Height="244" HorizontalAlignment="Left" Margin="12,12,0,0" Name="ListBox1" VerticalAlignment="Top" Width="167"
                     ItemsSource="{Binding}"
                     ItemTemplate="{StaticResource SystemTemplate}"
                     IsSynchronizedWithCurrentItem="True"
                     Visibility="Visible" SelectionMode="Single">
             </ListBox>
        </Grid>
    </Window>
    Merci!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Encore une petite chose..assez approchante, stp?

    J'ai aussi dans le même binding:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Image Source="{Binding XPath=Icon}"/>
    Je voudrais que le XML mentionne simplement le nom de l'image
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <System Name="Name1">
      <Icon>icon1.png</Icon>
    </System>

    Mais que le chemin vers cette image soit à nouveau dans le même users/appdata/roaming dossier que précédemment....
    Que deviendrait alors cette ligne <Image Source="{Binding XPath=Icon}"/> ?
    Comment, stp, l'adapterais-tu ou la remplacerais-tu par du code VB?

    Tout grand merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire un fichier audio présent dans les ressources
    Par Galdon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/05/2011, 11h16
  2. Réponses: 2
    Dernier message: 03/03/2010, 10h11
  3. Réponses: 0
    Dernier message: 26/10/2009, 11h44
  4. Lire un fichier xml incorporé dans l'exe
    Par chris81 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/02/2008, 12h54
  5. Réponses: 2
    Dernier message: 22/09/2006, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo