在Silverlight Pivot Viewer中更改过滤器以使用AND而不是OR

时间:2010-12-03 11:28:25

标签: silverlight pivotviewer

我需要修改过滤器在Silverlight Pivot查看器中的行为方式。

我有这个过滤器:

关键词:
x关键字a
_关键字b
x关键字c
_关键字d
_关键字e

过滤器生成“关键字OR关键字c”。我需要的是“关键字和关键字c”。

这可能吗?

感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

Poker Villain所说的非常正确,但这并不意味着PivotViewer不适合你。我遇到了一个与我一直在努力的系统有类似的问题,并设法找到一种让PivotViewer玩得很好的合适方法。这只适用于JIT集合,因为它依赖于重新获取数据。

基本上我一直在研究的系统是一个案例管理系统。与案例相关的大部分数据都是相互排斥的,因此符合PivotViewer的模型,但也有能力将“标签”添加到案例中,就像您建议的那样,用户通常会想要组合逻辑那里。以下是我为解决问题所做的工作。

首先,你要一份Silverlight Spy的副本。现在,在SSpy的资源管理器选项卡中,您可以在Visual Tree中向下钻取并查看PivotViewer的内容。这是我的看法......

alt text

你可以看到我已经钻进了名为'PART_FacetPane'的控件中。在那之下有一堆CustomAccordianItem个。基本上,您只需要子类化PivotViewer(这就是我的PivotViewerEx的原因)并覆盖OnApplyTemplate方法。

在这里,您将能够使用GetTemplateChild或其他方法来浏览VisualTree并自行添加另一个控件。在我的项目中,我使用了之前构建的简单标签云控件。

我所做的是处理标签云控件的事件,并将查询字符串值附加到用于构建CXML的URL,并根据这些参数过滤数据。它不像现在那样过滤“现场”数据那么流畅,但它现在是一个解决方案。

可能值得一提的是,根据您的具体情况,您可能需要向CXML URL添加最终的,随机生成的查询字符串值,这样您就无法获得数据的缓存副本。

HTH,Stimul8d。

答案 1 :(得分:0)

底线...没有。 你得到了这个控件你得到的东西。 (现在)

但你可以生成一个“虚拟”方面,它是项目所有关键字的串联。但是,如果你有多个关键字,它看起来会非常难看。