首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编程方式设置PivotViewer筛选器

以编程方式设置PivotViewer筛选器
EN

Stack Overflow用户
提问于 2011-09-09 14:34:01
回答 3查看 1.6K关注 0票数 2

我有一个Silverlight PivotViewer启动并运行,大约有4000个项目。

我将查询字符串参数传递给托管PivotViewer的页面,以便在打开时过滤项目。

如何以编程方式向PivotViewer添加筛选器?

我试过了:

代码语言:javascript
运行
复制
pvtTest.AppliedFilters.Add(new KeyValuePair<string, IList<string>>("Color", new List<string> { "EQ.Green", "EQ.Red" }));

但是它仍然会显示所有的项目。在使用UI设置一些过滤器之后,我还尝试检查AppliedFilters属性的值是什么,但它仍然只包含我在上面添加的过滤器。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-19 18:26:02

可以使用ViewerState属性指定筛选器。

它有一个非常特殊的语法,可以在here中找到。

票数 1
EN

Stack Overflow用户

发布于 2012-11-30 00:36:23

对于PivotViewer-2

代码语言:javascript
运行
复制
string sFilter = pvViewer.Filter; //get existing filter

pvViewer.ItemsSource = new-data-source; //assign new data source

pvViewer.Filter = sFilter; //reassign filter
票数 2
EN

Stack Overflow用户

发布于 2012-09-19 21:24:12

我认为grimstoner的答案可能不够清楚。

您确实可以使用ViewerState属性来设置筛选器,但不能直接设置它,因为它只有一个公共的getter。解决方法是使用LoadCollection()方法传递已加载集合的URI和修改后的查看器状态。您可能希望透视查看器重新加载集合,但事实并非如此。它似乎足够智能,可以检测到相同的URI,并且只应用新的查看器状态。

示例:

代码语言:javascript
运行
复制
string viewerState = pivotViewer.ViewerState;

// Modify the viewer state according to the rules defined at:
// http://www.silverlight.net/content/pivotviewer/developer-info/api/html/P_System_Windows_Pivot_PivotViewer_ViewerState.htm

pivotViewer.LoadCollection(pivotViewer.CollectionUri.ToString(), viewerState);

我希望这能帮助其他人解决同样的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7357932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档