2016-04-05 3 views
8

मैंने बहुत कुछ खोजा है और बहुत कोशिश की है लेकिन मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है। मैं अपने एक्सएमएल में डाटाबेसिंग के माध्यम से एक एक्सएमएल फ़ाइल को एक सूचीदृश्य में आउटपुट करने की कोशिश कर रहा हूं।सी # एक सूचीदृश्य में एक एक्सएमएल डाटाबेसिंग WPF

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:Kundenstrom" 
     xmlns:Properties="clr-namespace:Kundenstrom.Properties" x:Class="Kundenstrom.MainWindow" 
     mc:Ignorable="d" 
     Title="Kundenstrom" Height="232.5" Width="631" Icon="Hopstarter-Sleek-Xp-Basic-User-Group.ico"> 
    <Window.Resources> 
     <XmlDataProvider x:Key="Kundenstromdaten" Source="kunden.xml" XPath="Kundenstrom/Kunden"/> 
    </Window.Resources> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="11*"/> 
      <ColumnDefinition Width="77*"/> 
      <ColumnDefinition Width="11*"/> 
      <ColumnDefinition Width="40*"/> 
      <ColumnDefinition Width="21*"/> 
      <ColumnDefinition Width="357*"/> 
     </Grid.ColumnDefinitions> 
     <TabControl x:Name="tabControl" Grid.ColumnSpan="6" TabStripPlacement="Top" Margin="10,0,10,10"> 
      <TabItem Header="Eintragen"> 
       <Grid Background="#FFE5E5E5"> 
        <TextBox x:Name="txtGrund" Height="44" Margin="10,10,10,0" TextWrapping="Wrap" VerticalAlignment="Top"/> 
        <ComboBox x:Name="cmbTyp1" HorizontalAlignment="Left" Margin="10,59,0,0" VerticalAlignment="Top" Width="287"> 
         <ComboBoxItem Content="Laden"/> 
         <ComboBoxItem Content="Telefon"/> 
         <ComboBoxItem Content="Mail"/> 
        </ComboBox> 
        <ComboBox x:Name="cmbTyp2" Margin="302,58,10,0" VerticalAlignment="Top"> 
         <ComboBoxItem Content="Anfrage"/> 
         <ComboBoxItem Content="Auftrag"/> 
         <ComboBoxItem Content="Abholung"/> 
        </ComboBox> 
        <Button x:Name="btnEintragen" Content="Eintragen" HorizontalAlignment="Left" Margin="10,86,0,0" VerticalAlignment="Top" Width="287" Height="36" Click="btnEintragen_Click"/> 
       </Grid> 
      </TabItem> 
      <TabItem Header="Kunden anzeigen"> 
       <Grid Background="#FFE5E5E5"> 
        <ListView Margin="10" ItemsSource="{Binding Source={StaticResource Kundenstromdaten}}"> 
         <ListView.View> 
          <GridView> 
           <GridViewColumn DisplayMemberBinding="{Binding XPath=Grund}" Header="Grund" /> 
           <GridViewColumn DisplayMemberBinding="{Binding XPath=Typ1}" Header="Kundentyp" /> 
           <GridViewColumn DisplayMemberBinding="{Binding XPath=Typ2}" Header="Anfragetyp" /> 
           <GridViewColumn DisplayMemberBinding="{Binding XPath=Zeitpunkt}" Header="Zeitpunkt" /> 
          </GridView> 

         </ListView.View> 
        </ListView> 
       </Grid> 
      </TabItem> 
     </TabControl> 

    </Grid> 
</Window> 

और मेरे एक्सएमएल फ़ाइल लग रहा है डेटा इस

<?xml version="1.0" encoding="utf-8"?> 
<Kundenstrom> 
    <Kunden> 
    <Grund>hfth</Grund> 
    <Typ1>Laden</Typ1> 
    <Typ2>Auftrag</Typ2> 
    <Zeitpunkt>04.04.2016 15:01:38</Zeitpunkt> 
    </Kunden> 
    <Kunden> 
    <Grund>testestsetsetse</Grund> 
    <Typ1>Laden</Typ1> 
    <Typ2>Anfrage</Typ2> 
    <Zeitpunkt>04.04.2016 16:57:59</Zeitpunkt> 
    </Kunden> 
</Kundenstrom> 

तरह सूचीदृश्य में नहीं दिखा रहा है। क्या मुझे अतिरिक्त सीएस कोड चाहिए?

+1

आपका कोड मुझे ठीक लगता है, क्या आपने किसी भी डेटा बाइंडिंग त्रुटियों की जांच की है? [So] की तरह (http://stackoverflow.com/questions/4026543/is-there-a-good-tool-for-debugging-xamls- डेटाबेस- व्यवहार-errors-at-runti)। – Kolky

+0

मैं एक सूचीदृश्य के बजाय एक वृक्षदृश्य का उपयोग करेंगे। निम्नलिखित उदाहरण देखें: http://stackoverflow.com/questions/28976601/recursion-parsing-xml-file-with-attributes-into-treeview-c-sharp – jdweng

+3

मैंने अभी इसका परीक्षण किया है और यह अपेक्षा के अनुसार काम कर रहा है। क्या kunden.xml संसाधन या सामग्री में मौजूद है? –

उत्तर

1

कोई अतिरिक्त सीएस कोड की आवश्यकता नहीं है।

XmlDataProvider की स्रोत संपत्ति एक उरी है, फ़ाइल पथ नहीं है। तो यदि आप वहां केवल "kunden.xml" लिखते हैं, तो आपका एप्लिकेशन इस फ़ाइल को एप्लिकेशन संसाधनों में ढूंढ रहा है। इस फ़ाइल को एप्लिकेशन संसाधनों में जोड़ने के लिए आप अपनी एक्सएमएल फ़ाइल को अपनी परियोजना में जोड़ देंगे (जोड़ें-> मौजूदा आइटम)। में फ़ाइलों को अपने गुण सेट "संसाधन"

करने के लिए "कार्रवाई बनाएँ" आप, आप करेगा (यानी kunden.xml एक ही फ़ोल्डर जहाँ आपके exe है में किया जाएगा) स्टैंडअलोन फ़ाइल से लोड करने के लिए अपने app चाहते हैं:

  • कॉपी उत्पादन फ़ोल्डर में xml: स्वयं या स्वचालित, यानी सेट kunden.xml "एक्शन बनाएँ" के लिए "कोई नहीं", लेकिन "आउटपुट कॉपी निर्देशिका"
  • स्रोत बदलें = "kunden.xml" यदि नए कॉपी करने के लिए " "स्रोत =" पैक: // साइटफोरिगिन: ,,,/kunden.xml "

यदि आप पेट का उपयोग करना चाहते हैं फ़ाइल का olute नाम, बस स्रोत = "फ़ाइल: /// डी: /my/absolute/path/kunden.xml" का उपयोग करें।

संबंधित मुद्दे