本文介绍了,如何实现表格控件的自定义过滤功能。
实现C1FlexGrid的自定义过滤下拉框
第一步:
检查列头的过滤图标是否被点击。为了达到这个目的,需要在MouseClick事件里使用HitTest方法。
'CustomFilterMenu' 方法中包含完成的自定义过滤下拉框代码。
第二步:
当检查过过滤图标是否被点击,就该自定义下拉框,这是通过在菜单的ToolScrip里添加按钮实现。
过滤下拉菜单是C1FlexGrid的对象,可以直接获取。因此过滤下拉菜单可以作为窗体继承实现功能。
第三步:
在获取到FilterEditorForm后,可以通过需求改变它。
作为我们继承实现了排序,我们需要在窗体的Tools次日拍添加两个按钮,排序就可以在表格实现。
效果如图:
实现C1FlexGrid的自定义过滤下拉框的值
第一步:定义Converter
首先需要自定义Converter,将原本的True/False的值转成有效/无效。
第二步:自定义CheckBox下拉框模板
定义一个模板,将原本的值转成需求的值。
第三步:实现自己的FilterEditor
从ColumnFilterEditor接口继承,实现自己的FilterEditor,其中将原本的下拉框部分替换成设计好的Checkbox。
效果如图:
实现C1FlexGrid的自定义过滤按钮
ComponentOne FlexGrid使用C1FlexGridFilterSevice允许用户基于值过滤列。这就需要FlexGridFilter dll添加到工程中。FilterEditor有一些条件、值和按钮(应用,取消和清除)默认过滤弹出如下图:
如上所示,我们需要隐藏或是移除默认过滤的按钮和条件。
通过VisualTreeHelper类很容易的就能实现需求。使用VisualTreeHelper的GetChildrenOfType()方法,可以获取到FilterEditor的按钮,ComboBoxes以及Radiobuttons,TextBloks等等。在这里,我们可以移除“Clear”按钮。
效果如图:
快人一步,免费试用
试用ComponentOne,或了解金鸡献瑞ComponentOne 7折迎春活动,请通过以下方式联系我们:
郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。