将xml屏幕映射到表单

时间:2010-11-03 15:12:48

标签: xml winforms user-interface

我需要为C#3.5 / winforms应用程序设计一个.Net表单。这个表单可以让用户手动输入数据,点击此表单上的保存按钮,将生成一个xml,其架构如下所示:

<Request ID="1" Type="testType" requestedBy="admin" Date="20081128 19:30:00" date="20100122 00:00:00">
<List>
<Data name="A" date="04/27/2009" region="NA" /> 
  <Data name="B" userName="johnc" /> 
  <Data name="C" date="04/27/2009" region="TR" /> 
  <Data name="D" date="04/27/2009" region="NA" /> 
  <Data name="E" file="C:\Test\ABC.txt" outFile="C:\Test\ABCOut.txt" businessDate="04/27/2009" userName="testuser1"/> 
  <Data name="F" file="C:\Test\EFG.txt" outFile="C:\Test\EFGOut.txt" businessDate="05/21/2009" userName="testuser2"/> 
</List>
</Request>

此表单的设计应该是用户友好且直观的,因为它也将由非IT用户使用。

此xml具有各种数据节点,每个节点具有不同的属性集。 具有相同数量的具有不同值的属性的数据节点可以重复[例如:具有名称“E”和“F”的数据节点]

想一想这种表单设计的最佳方法是什么?

我应该在winform的顶部放置一个下拉列表,它会显示不同数据节点名称[A,B.C ...]的列表吗? 然后更改此下拉列表中的项目将动态更改下面的表单。 例如:在ddList中选择C将显示日期和区域的文本框......同样...... 或者在这种情况下如何使用gridview?

请建议。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

无论您使用的是WPF的WinForms,都应该可以轻松地将DataLayer转换为xml。

  • 获取xml(xsd one)的架构并使用Visual Studio xsd工具将其转换为C#类;
  • 然后你可以围绕DataLayer设计你的GUI,当你想要持久化(保存)时,你可以使用XmlSerializer来为你工作。
  • 这样你就可以对抗DataLayer而不用担心持久性,因为它将基于合同/请求的Xml Schema