尝试在WPF中构建查询生成器控件

请问我这个问题的长度,我试着尽可能地描述。 我是WPF编程的新手。 我基本上是在尝试构建RadDataFilter控件 :

RadDataFilter用于通过构建查询表达式来过滤集合。 通常通过从数据库中提取所有数据然后对其进行过滤来使用该控件。

但是,我正在尝试使用它来构建SQL查询表达式,然后我查询数据库以检索数据。 我们公司拥有Telerik产品的许可证,因此我不得不尝试使用该控件。 不幸的是,控件不灵活到我想要自定义Left Dropdown (RadComboBox)的程度。

由于我们有几个用户可以过滤的项目,因此为它们提供单个dropdpwn是不可行的。 我想有一个自定义控件而不是下拉列表。

我有以下解决此问题的方法:

  • 解压缩该控件的模板,并在我的XAML中覆盖它,如此处所述。 但是,尽管如此,我无法改变控制。 我认为这是由于我对WPF的知识不足。

  • 尝试更改Telerik的源代码(我们也有代码许可证)。 但是,通过这种方法,我们需要在每次升级时不断进行更改,这对团队来说是高度维护。

  • 尝试构建自定义控件。

我正在寻找第三种方法。 如果有一种简单的方法(使用前两种方法)或任何其他解决方案来实现这一点,请告诉我,我会尝试。

为了实现第三种方法,我想使用一个TreeView与每个节点使用ControlTemplate(包含我的自定义控件)。 我将覆盖自定义控件的ToString()方法,该方法为我提供了一个查询条件。 完成后,我将遍历根节点的子节点以构建最终的查询表达式。

然而,正如我所注意到的,我们需要2个不同的ControlTemplates(一个允许创建filter表达式,另一个允许使用运算符,类似于RadDataFilter)。 我不知道如何设置这样的多个模板。

对于那里的一些开发人员来说这听起来很简单,但我对C#和WPF编程很陌生,需要时间和经验来适应它。

如果您知道我可以尝试解决此问题的任何其他解决方案,请通知我。 如果您觉得创建自定义控件更好,请引导我了解实现此目的的最佳方法。 还评论我创建自定义控件的方法。

谢谢!

我解决了 采取第一种方法:

“解压缩该控件的模板并在我的XAML中覆盖它,如此处所述..”