2015-06-19 39 views
0

我想將我的數據從xml文件綁定到列表框,但是我失敗了。如何將我的XML數據綁定到列表框?

這裏是我的xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<Cams> 
    <Cam> 
    <Name>Name</Name> 
    <Link>Link</Link> 
    <Path>Path</Path> 
    </Cam> 
</Cams> 

而這裏開始我的XAML文件的:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:Properties="clr-namespace:CamManager.Properties" x:Name="MainForm" x:Class="CamManager.MainWindow" 
    Title="CamManager" Height="190.69" Width="336.724" WindowStyle="ToolWindow" ResizeMode="NoResize" Background="White" BorderBrush="Black"> 
<Window.Resources> 
    <XmlDataProvider x:Key="Data" Source="CamCollection.xml"/> 
</Window.Resources> 
<Grid> 
    <TabControl HorizontalAlignment="Left" Height="322" VerticalAlignment="Top" Width="519"> 
     <TabItem Header="Collection"> 
      <Grid Background="#FFE5E5E5" Margin="0,0,185,153"> 
       <ListBox x:Name="Collection" HorizontalAlignment="Left" Height="124" VerticalAlignment="Top" Width="235" ItemsSource="{Binding Source={StaticResource Data}, XPath=/Cams/Cam/Name}"/> 
       <Button x:Name="Launch" Content="Launch" HorizontalAlignment="Left" Margin="240,36,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="-0.103,-0.084"/> 
       <Button x:Name="Delete" Content="Delete" HorizontalAlignment="Left" Margin="240,61,0,0" VerticalAlignment="Top" Width="75"/> 
      </Grid> 
     </TabItem> 

,當我開始計劃我的列表框留空的,所以我想有「名稱」。

編輯:謝謝您的解決方案,但是,這不是我的問題,我不知道爲什麼,但我必須指定要我的XML的整個路徑時,我指定源

源=「C:\用戶.. 。\ CamCollection.xml「 如果你知道爲什麼?

+0

如果你改變你的'XPath'只是''Cams' CamCollection'會發生什麼?你的xml中沒有'CamCollection'。 – JRLambert

+0

是的,這是我的問題的原因,但不是全部 –

回答

2

解決方法1:

<XmlDataProvider x:Key="Data" Source="CamCollection.xml" XPath="Cams/Cam/Name"/> 

溶液2:

<ListBox x:Name="Collection" HorizontalAlignment="Left" Height="124" VerticalAlignment="Top" Width="235" ItemsSource="{Binding Source={StaticResource Data}, XPath=Cams/Cam/Name}"/> 
相關問題