110,533
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8" ?>
<module name="vtk实体">
<para name="X轴旋转">
<value type="float">30</value>
</para>
<para name="Y轴旋转">
<value type="float">-45</value>
</para>
<para name="Z轴旋转">
<value type="float">0</value>
</para>
<para name="实体位置">
<value type="float">0</value>
<value type="float">0</value>
<value type="float">0</value>
</para>
</module>
DataTable dt = new DataTable();
dt.Columns.Add("X轴旋转", typeof(float));
dt.Columns.Add("Y轴旋转", typeof(float));
dt.Columns.Add("Z轴旋转", typeof(float));
dt.Columns.Add("X", typeof(float));
dt.Columns.Add("Y", typeof(float));
dt.Columns.Add("Z", typeof(float));
dt.Rows.Add(30, -45, 0, 0, 0, 0);
vGridControl1.DataSource = dt;
Row的FieldName设置了对应的
string XmlPath = @"C:\Users\asus\Desktop\test.xml";
XmlDocument xml = new XmlDocument();
xml.Load(XmlPath);
XmlElement root = (XmlElement)xml.SelectSingleNode("module");
string categoryname = root.GetAttribute("name");
category1.Properties.Caption = categoryname;
foreach (XmlElement para in root.ChildNodes)
{
string paraname = para.GetAttribute("name");
EditorRow row = new EditorRow();
row.Properties.Caption = paraname;
if (para.ChildNodes.Count > 1)
{
foreach (XmlElement value in para.ChildNodes)
{
EditorRow childrow = new EditorRow();
childrow.Properties.Caption =value.GetAttribute("name");
childrow.Properties.FieldName = value.GetAttribute("name");
childrow.Properties.RowEdit = repositoryItemTextEdit1;
//childrow.Properties.Value=value.InnerText;
row.ChildRows.Add(childrow);
row.Properties.ReadOnly = true;
}
}
else
{
row.Properties.RowEdit = repositoryItemTextEdit1;
row.Properties.FieldName = para.GetAttribute("name");
//row.Properties.Value = para.ChildNodes[0].InnerText;
}
category1.ChildRows.Add(row);
}
怎么能让这个实体位置的值是0,0,0?[/quote]
额 我XML也稍微改了一下 忘记发了
<?xml version="1.0" encoding="utf-8" ?>
<module name="vtk实体">
<para name="X轴旋转" property="RotateX">
<value type="float">30</value>
</para>
<para name="Y轴旋转" property="RotateY">
<value type="float">-45</value>
</para>
<para name="Z轴旋转" property="RotateZ">
<value type="float">0</value>
</para>
<para name="实体位置" property="SetPosition">
<value name="X" type="float">0</value>
<value name="Y" type="float">0</value>
<value name="Z" type="float">0</value>
</para>
</module>
DataTable dt = new DataTable();
dt.Columns.Add("X轴旋转", typeof(float));
dt.Columns.Add("Y轴旋转", typeof(float));
dt.Columns.Add("Z轴旋转", typeof(float));
dt.Columns.Add("X", typeof(float));
dt.Columns.Add("Y", typeof(float));
dt.Columns.Add("Z", typeof(float));
dt.Rows.Add(30, -45, 0, 0, 0, 0);
vGridControl1.DataSource = dt;
string XmlPath = @"C:\Users\asus\Desktop\test.xml";
XmlDocument xml = new XmlDocument();
xml.Load(XmlPath);
XmlElement root = (XmlElement)xml.SelectSingleNode("module");
string categoryname = root.GetAttribute("name");
category1.Properties.Caption = categoryname;
foreach (XmlElement para in root.ChildNodes)
{
string paraname = para.GetAttribute("name");
EditorRow row = new EditorRow();
row.Properties.Caption = paraname;
if (para.ChildNodes.Count > 1)
{
foreach (XmlElement value in para.ChildNodes)
{
EditorRow childrow = new EditorRow();
childrow.Properties.Caption =value.GetAttribute("name");
childrow.Properties.FieldName = value.GetAttribute("name");
childrow.Properties.RowEdit = repositoryItemTextEdit1;
//childrow.Properties.Value=value.InnerText;
row.ChildRows.Add(childrow);
row.Properties.ReadOnly = true;
}
}
else
{
row.Properties.RowEdit = repositoryItemTextEdit1;
row.Properties.FieldName = para.GetAttribute("name");
//row.Properties.Value = para.ChildNodes[0].InnerText;
}
category1.ChildRows.Add(row);
}
string XmlPath = @"test.xml";
XmlDocument xml = new XmlDocument();
xml.Load(XmlPath);
XmlElement root = (XmlElement)xml.SelectSingleNode("module");
string categoryname = root.GetAttribute("name");
category1.Properties.Caption = categoryname;
foreach (XmlElement para in root.ChildNodes)
{
string paraname = para.GetAttribute("name");
EditorRow row = new EditorRow();
row.Properties.Caption = paraname;
if(para.ChildNodes.Count>1)
{
foreach (XmlElement value in para.ChildNodes)
{
EditorRow childrow = new EditorRow();
childrow.Properties.Caption =value.GetAttribute("type");
childrow.Properties.RowEdit = repositoryItemTextEdit1;
childrow.Properties.Value=value.InnerText;
row.ChildRows.Add(childrow);
row.Properties.ReadOnly = true;
}
}
else
{
row.Properties.RowEdit = repositoryItemTextEdit1;
row.Properties.Value = para.ChildNodes[0].InnerText;
}
category1.ChildRows.Add(row);
}
这样虽然能添加上去,但是没法保证输入的数据类型,只有绑定了DataSource才可以,所以不知道这个DataSet该是什么样,如果一对一的话,很好做,但是这个怎么整啊?
<para name="实体位置">
<value type="float">0</value>
<value type="float">0</value>
<value type="float">0</value>
</para>
<para name="实体位置" property="SetPosition">
<value type="float">0</value>
<value type="float">0</value>
<value type="float">0</value>
</para>
它有3个值,就是得在EditorRow下再加3个子Row
这样dataset该怎么存呢?