WPF UI允许用户构建复杂查询并输出表达式树

时间:2011-12-29 17:22:51

标签: c# .net wpf vb.net expression-trees

我要构建的是一个允许高级用户构建复杂查询的UI。

这是非常重要的,但很常见。所以在我重新发明轮子之前,我想看看是否有人可以指出一些已经编写的免费代码或者发布一些他们自己的代码。

必需:

为了能够指定一些'where-clause'类型逻辑,如下所示:Age>21 and (Citizen=True or HasGreeCard=True)但不必输入查询代码,而是使用具有约束选项和动态语法检查的UI(例如,没有未公开的括号或与运营商结束任期)。

我在很多业务线应用程序中都看到过这种类型的东西,你可以说“添加条件”,并在用户界面上显示另一行:

 Dropdown of fields     Dropdown of ops (=, >, etc)     Blank box for entry

你可以添加更多的行,并且行是全部和',但你也可以决定OR,或插入括号(明确或通过缩进),而不是行,插入,删除和移动行周围等等。

不是必需但很好:

  • WPF - 我可以从winforms转换。
  • 使用OO构造的可扩展性。
  • 验证查询的完整性。
  • 发出System.Linq.Expressions表达式树 - 或类似的数据结构。
  • 如果它试图执行查询我不需要那个;但我不介意删除它。

1 个答案:

答案 0 :(得分:0)

DevExpress控件已经解决了这个问题。谷歌他们的FilterControl为wpf。它可以很容易地满足您的需求,您可以添加和删除操作,然后将表达式转换为SQL查询或实现ivisitor并执行方程式或其他生成...