CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 1 of 1

Threaded View

  1. #1
    Join Date
    Apr 2011
    Posts
    19

    [WPF] XML Binding

    I have an XML file structured this way:
    Code:
    <Emulators>
      <Settings>
        <vol name="10"/>    
        <Volume>10</Volume>
        <Keys name="key1" value="1" />
        <Keys name="key2" value="2" />
        <Keys name="key3" value="3" />
        <Keys name="key4" value="4" />
      </Settings>
      <System>
        <Name>name1</Name>
        <Icon>name1.png</Icon>
        <topplayed>
          <Top>top1</Top>
          <Top>top2</Top>
          <Top>top3</Top>
        </topplayed>
      </System>
    <System>
        <Name>name2</Name>
        <Icon>name2.png</Icon>
        <topplayed>
          <Top>top4</Top>
          <Top>top5</Top>
          <Top>top6</Top>
        </topplayed>
      </System>
    </Emulators>
    I get no difficulties binding to <Settings> tag, as well as tags contained into it (color:red)
    I get no difficulties to bind the <System> tag into a list box (color:yellow).....but I don't know how to bind to tags into <topplayed>(color:blue).
    How to populate a listbox with all <topplayed> elements of the currently selected <System>?
    Code:
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication1"         
        Title="MainWindow" Height="721" Width="525" Background="#FF4E4E64">
        <Grid Name="Grid1">
            <Grid.DataContext>
                <XmlDataProvider x:Name="SystemData" Source="C:\Users\Portable\Desktop\taper\WpfApplication1\Resources\Systems2.xml" XPath="Emulators" />
            </Grid.DataContext>
            <Grid.Resources>
                <DataTemplate x:Key="Resource1">
                    <Label Content="{Binding XPath=@name}"/>
                </DataTemplate>
                <DataTemplate x:Key="Resource2">
                    <Label Content="{Binding XPath=@value}"/>
                </DataTemplate>
                <DataTemplate x:Key="Resource3">
                    <Label Content="{Binding XPath=Name}"/>
                </DataTemplate>
                <DataTemplate x:Key="Resource4">
                    <Label Content="{Binding XPath=Top}"/>
                </DataTemplate>
            </Grid.Resources>
            <TextBox Text="{Binding XPath=Settings/Volume}" Height="30" HorizontalAlignment="Left" Margin="12,12,0,0" Name="TextBox5" VerticalAlignment="Top" Width="196" />
            <ListBox ItemsSource="{Binding XPath=Settings/Keys}" ItemTemplate="{StaticResource Resource1}" IsSynchronizedWithCurrentItem="True" Height="92" HorizontalAlignment="Left" Margin="12,48,0,0" Name="ListBox1" VerticalAlignment="Top" Width="196" />
            <ListBox ItemsSource="{Binding XPath=Settings/Keys}" ItemTemplate="{StaticResource Resource2}" Height="92" HorizontalAlignment="Left" IsSynchronizedWithCurrentItem="True" Margin="214,48,0,0" Name="ListBox2" VerticalAlignment="Top" Width="196" />
            <ListBox ItemsSource="{Binding XPath=System}" ItemTemplate="{StaticResource Resource3}" IsSynchronizedWithCurrentItem="True" Height="104" HorizontalAlignment="Left" Margin="12,185,0,0" Name="ListBox3" VerticalAlignment="Top" Width="196" />
            <ListBox ItemsSource="{Binding XPath=System/topplayed}" ItemTemplate="{StaticResource Resource4}" Height="74" HorizontalAlignment="Left" Margin="12,295,0,0" Name="ListBox4" VerticalAlignment="Top" Width="196" />
        </Grid>
    </Window>
    Thank you very much!!
    Last edited by Jayme65; September 19th, 2012 at 11:36 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured