gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:58:47 25 4
gpt4 key购买 nike

请耐心等待这个问题的长度,我尽量做到描述性。我是 WPF 编程的新手。我基本上是在尝试构建 RadDataFilter control :

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

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

因为我们有几个用户可以过滤的项目,所以为他们提供一个单一的 dropdpwn 是不可行的。我想要一个自定义控件而不是下拉菜单。

我有以下解决方法来解决这个问题:

  • 提取该控件的模板并按照描述在我的 XAML 中覆盖它 here .但是,尽管这样做,我还是无法更改控件。我认为这是由于我对 WPF 的了解不足。

  • 尝试更改 Telerik 的源代码(我们也有代码的许可证)。然而,使用这种方法,我们需要在每次升级时不断进行更改,这对团队来说是一项高维护工作。

  • 尝试构建自定义控件。

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

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

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

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

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

谢谢!

最佳答案

我解决了。采用第一种方法:

“提取该控件的模板并按照 here 所述在我的 XAML 中覆盖它......”

关于c# - 尝试在 WPF 中构建查询生成器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com