2016-11-02 7 views
0


C#WinFormsアプリケーションには、1つのXMLファイルに保存する3つのGridViewがあります。
複数のGridViewを1つのXMLファイルに変換する方法

DataTable dst = new Datatable(); 
dst = (DataTable)grdViewBGM.DataSource; 
dst.TableName = "GridView"; 
dst.WriteXml(folderPath + String.Format("\\{0}.xml", filename), true); 

それを解決するために単純なことかもしれないが、私は完璧以外のすべてである3つのxmlファイルを作る以外の手掛かりを持っていない:1つのGridViewの場合
は、私はこのようにそれを行います。
誰かが私に素晴らしいアドバイスをくれたら、感謝します。

作成されたファイルは次のようになります。

<?xml version="1.0" standalone="yes"?> 
<DocumentElement> 
    <GridView> 
     <Genre>Wald</Genre> 
     <Pfad>C:\Users\Kong\Desktop\Beards\Wald</Pfad> 
     <Hotkey>1</Hotkey> 
    </GridView> 
    <GridView> 
     <Genre>Wald Nachts</Genre> 
     <Pfad>C:\Users\Kong\Desktop\Beards\Wald Nachts</Pfad> 
     <Hotkey>2</Hotkey> 
    </GridView> 
</DocumentElement> 
+0

実際にファイルを作成していますか?ファイルはどのように見えますか?その内容を投稿できますか?さらに、WriteXmlを呼び出すときに、dst変数が正当な構造を持っていることを確認してください。 –

+0

は、GridViewのソースです。 sourceがすでにDataTableである場合は非常に簡単です。 – jdweng

+0

はい私はあなたのために私のポストを拡大しました。はい、GridViewのソースは実際にDataTableにあります。 – KommissarKong

答えて

0

1つの可能な方法は、DataSetTablesコレクションを移入することです。それはxmlに書き込むメソッドを持っています。

void MakeXML(string fileName) 
{ 
    DataSet ds = new DataSet(); 
    foreach(DataGridView dgv in this.Controls.OfType<DataGridView>()) 
    { 
     ds.Tables.Add((DataTable)dgv.DataSource); 
    } 
    ds.WriteXml(fileName); 
} 

DataGridView年代は、現在のフォーム(this)にない場合は、それらが含まれている方のコントロールの名前を使用します。それらが広がっている場合は、DataGridViewが作成されるたびに追加するグローバルList<DataGridView>のままにして、それを使用してください。

+0

アドバイスありがとうございましたが、 'this.Controls.OfType ()'は空です。^( – KommissarKong

+0

@KommissarKong - 私は答えにさらに説明を追加しました – tinstaafl

+0

私はあなたの意見を得ていますが、グリッドビューはこれで利用できるはずです。私はthis.Controls.OfTypeを要求する

関連する問題