我要构建的是一个允许高级用户构建复杂查询的UI。
这是非常重要的,但很常见。所以在我重新发明轮子之前,我想看看是否有人可以指出一些已经编写的免费代码或者发布一些他们自己的代码。
为了能够指定一些'where-clause'类型逻辑,如下所示:Age>21 and (Citizen=True or HasGreeCard=True)
但不必输入查询代码,而是使用具有约束选项和动态语法检查的UI(例如,没有未公开的括号或与运营商结束任期)。
我在很多业务线应用程序中都看到过这种类型的东西,你可以说“添加条件”,并在用户界面上显示另一行:
Dropdown of fields Dropdown of ops (=, >, etc) Blank box for entry
你可以添加更多的行,并且行是全部和',但你也可以决定OR,或插入括号(明确或通过缩进),而不是行,插入,删除和移动行周围等等。
System.Linq.Expressions
表达式树 - 或类似的数据结构。 答案 0 :(得分:0)
DevExpress控件已经解决了这个问题。谷歌他们的FilterControl为wpf。它可以很容易地满足您的需求,您可以添加和删除操作,然后将表达式转换为SQL查询或实现ivisitor并执行方程式或其他生成...