Silvetlight 5:PivotViewer:如何在S后面的代码中更改PivotViewer Filter

时间:2013-04-08 19:30:22

标签: pivotviewer

我扩展了PivotViewer控件并隐藏了Filter Panel。我有一个带有类别的TreeView。每个类别都有子项目。我想在treeView上选择/单击类别时为PivotViewer设置过滤器。在TreeView_MouseLeftButtonUp中,我正在执行以下操作

 private void myTreeView_MouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
 {
 var grouping = (IGrouping<string, Web.SDKSampleCode>)myTreeView.SelectedItem;
 pViewer.Filter = string.Format("Category = EQ.{0}", grouping.Key.ToString());
}

我确实看到了FilterChanged,但有两个问题: a)FilterChanged被触发两次 b)也不应用过滤器。

这一切都适用于FilterPanel,但我必须在我的应用程序中隐藏FilterPanel,而是使用TreeView,以便它可以充当TOC以及过滤类别。

非常感谢任何帮助。 SideNote,我正在使用SL5 + Ria服务来获取数据并在PivotViewer中显示。

1 个答案:

答案 0 :(得分:0)

发现它!我需要调用SetViewerState(filterstring)

pViewer.Filter = string.Format("facet=Category&Category=EQ.{0}", grouping.Key.ToString());
                pViewer.SetViewerState(pViewer.Filter);