我有一个大型域对象(仅限数据),它遵循严格的.xsd架构进行验证。 我试图让用户使用winforms编辑/创建这个巨大的对象,但我不是 确定最简单的方法是什么。 我想到了两个想法: 第一个是将整个对象绑定到不同的控件。 第二个是以某种方式使用xsd模式动态创建不同的控件 (这有点酷,因为我有大约60个不同的文本框,有各种可能的下拉答案)。 有什么好办法吗? 谢谢,
答案 0 :(得分:1)
您还可以查看PropertyGrid控件。它将自动生成树状结构中的控件。 我用它来允许用户编辑配置文件(例如)。 XSD.exe工具将帮助您创建PropertyGrid控件所需的对象结构。
答案 1 :(得分:0)
信息不足。说真的 - 这不是一个编程问题,它首先是一个设计(如界面设计)问题,而且很大程度上取决于具体情况。
示例:如果用户填写了现有表单,则按照复制表单的方法可能会很好 - 特别是如果纸质表单仍然打印出来并签名或类似的话。 Infopath(办公室的一部分)对这个想法很不满意。
然后LOT取决于所涉及的工作流程。
我不认为从纯技术角度来看有一个有效的更好/更差的答案,忽略了表格上的实际内容。
答案 2 :(得分:0)
您可以通过将控件添加到窗体控件集合中来动态地将控件添加到WinForm。此外,您有容器控件,可以拥有自己的子控件。
因此,根据您需要多少类型的控件,您可以通过遍历模式动态构建表单,根据需要添加控件并最终将数据加载到控件中。
加载数据可能是最困难的部分,但有几种方法可以解决这个问题。您可以使用数据绑定到与xsd架构匹配的对象,您可以使用xpath到控件并迭代它们以加载数据,依此类推。
我认为没有一个标准的解决方案来实现你所追求的目标,但是在WinForms中实现动态表单非常容易,所以它应该非常简单。