1

UltraTree メソッド SetDataBinding を使用して、xml ツリー構造を表示します。Xml は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<StructDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Document">
<List>  
    <StructElement Name="Number">
        <List/>
    </StructElement>    
    <StructElement Name="Author">
        <List>
            <StructElement Name="Name">
                <List>
                    <StructElement Name="FullName">
                        <List/>
                    </StructElement>
                    <StructElement Name="Adress">
                        <List/>
                    </StructElement>
                    <StructElement Name="Email">
                        <List/>
                    </StructElement>
                </List>
            </StructElement>
        </List>
    </StructElement>
</List>
</StructDocument>

私は次のことを得るよりも:ここに画像の説明を入力

ご覧のとおり、「Name」要素の子要素のリストがありません。しかし、このように xml を変更すると (「Number」要素と「Author」要素の順序を変更するだけです):

<?xml version="1.0" encoding="utf-8"?>
<StructDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Document">
<List>      
    <StructElement Name="Author">
        <List>
            <StructElement Name="Name">
                <List>
                    <StructElement Name="FullName">
                        <List/>
                    </StructElement>
                    <StructElement Name="Adress">
                        <List/>
                    </StructElement>
                    <StructElement Name="Email">
                        <List/>
                    </StructElement>
                </List>
            </StructElement>
        </List>
    </StructElement>
    <StructElement Name="Number">
        <List/>
    </StructElement>
</List>
</StructDocument>

、私は次のようになります:ここに画像の説明を入力

つまり、目的の動作が表示され、すべての xml 要素が画面に表示されます。xmlを変更せずにこれを達成する方法を知りたいですか?

4

1 に答える 1

3

XML ファイルを使用して小さなサンプルでシナリオを再現しようとしましたが、どちらの場合も (両方の XML ファイルで) 例外が発生しました。 name. " (おそらく、私のシナリオが少し異なるため)

添付のサンプルを見てください。私があなたのシナリオを再現していないと思われる場合は、このサンプルを自由に変更して元に戻してください。喜んで調査させていただきます。

それまでの間、当社の Web サイトhttp://www.infragistics.com/community/forums/に質問を投稿してください。喜んでお手伝いさせていただきます。

これが私のテストサンプルの結果です

ここに画像の説明を入力

ここに私のXMLファイルがあります

<?xml version="1.0" encoding="utf-8"?>
<StructDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Document" Description="">
  <StructElement Name="Number" Description ="Number of books 100">
  </StructElement>
  <StructElement Name="Author">
    <StructElement Name="Name" Description ="Stephen King">
      <StructElement Name="FullName" Description ="Stephen King full name">
      </StructElement>
      <StructElement Name="Adress" Description ="Stephen King address">
      </StructElement>
      <StructElement Name="Email" Description ="Stephen King email">
      </StructElement>
    </StructElement>
  </StructElement>
  <StructElement Name="Number" Description ="Number of books 20">
  </StructElement>
  <StructElement Name="Author">
    <StructElement Name="Name" Description ="George R. R. Martin">
      <StructElement Name="FullName" Description ="George R. R. Martin full name">
      </StructElement>
      <StructElement Name="Adress" Description ="George R. R. Martin address">
      </StructElement>
      <StructElement Name="Email" Description ="George R. R. Martin email">
      </StructElement>
    </StructElement>
  </StructElement>
</StructDocument>

とソースコード

 private void Form1_Load(object sender, EventArgs e)
    {
        try
        {
            DataSet ds = new DataSet();
            ds.ReadXml("..\\..\\XMLFile1.xml");
            ultraTree1.DataSource = ds.Tables[0];
            ultraTree1.ExpandAll();
            ultraTree1.ColumnSettings.AutoFitColumns = Infragistics.Win.UltraWinTree.AutoFitColumns.ResizeAllColumns;
            ultraTree1.ColumnSettings.ColumnSets[0].Columns[0].Visible = false;

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            this.Close();
        }
    }
于 2013-08-14T10:51:49.993 に答える