我正在使用 xsd 文件来验证 xml 文件。在 xsd 文件中,只有少数元素是必需的,其余的都是可选的。但是,它是顺序的,因此元素在数据表中出现的顺序很重要。在考虑了用户可能会遇到的一些场景之后,我想出了一个解决起来有点困难的案例。
情况是这样的:例如,xsd文件中有6个元素A、B、C、D、E、F。只需要 A、C 和 D。用户从 A、C、D 开始。我允许用户添加一个名为 B 的列。但是,它在末尾附加:A、C、D、B。因此,由于它是顺序的,它将不验证。
所以我的问题是,如何在 A 和 C 之间插入 B 以使 xsd 验证通过?或者有没有其他方法可以重新排序 datagridview 中的内容并将其反映在数据表中?
我想我可以通过允许用户对显示表格的 datagridview 中的列重新排序来解决这个问题。
编辑:假设我无法更改 xsd 文件。
那是,
dataGridView1.AllowUserToOrderColumns = true;
但是,验证总是告诉我在最后一个必要元素之后的“元素”是预期的。这意味着 datagridview 中数据列的变化并未反映在数据表本身中。
为了通过验证,我相信我需要将该列插入到与其他所有内容相关的相应位置。或者至少将其插入到最后并在用户按下验证按钮时反映正确的顺序。
我在网上遇到了其他一些事情,告诉我尝试以下操作:
Table.Columns["Column Name"].SetOrdinal(NewIndex);
但我还没有实现它。如果上面的那行不起作用,有什么想法吗?=) 此外,我希望能够将数据表与用户在 datagridview 中的操作同步。那将是理想的。如果用户移动 datagridview 中的列,则数据表应反映该更改。
非常感谢任何见解,如果需要,我很乐意提供更多信息。谢谢!
此致, tf.rz
(.NET 3.5 SP1,Visual Studio C# 2008)