2

Silverlight PivotViewer を稼働させており、約 4000 のアイテムがあります。

PivotViewer をホストするページにクエリ文字列パラメーターを渡して、開いたときにアイテムをフィルター処理します。

プログラムで PivotViewer にフィルターを追加するにはどうすればよいですか?

私はもう試した :

pvtTest.AppliedFilters.Add(new KeyValuePair<string, IList<string>>("Color", new List<string> { "EQ.Green", "EQ.Red" }));

それでもすべてのアイテムが表示されます。また、UI を使用していくつかのフィルターを設定した後、AppliedFilters プロパティの値を確認しようとしましたが、上記で追加したフィルターしか含まれていません。

4

3 に答える 3

2

PivotViewer-2 の場合

string sFilter = pvViewer.Filter; //get existing filter

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

pvViewer.Filter = sFilter; //reassign filter
于 2012-11-29T16:36:23.043 に答える
1

ViewerState プロパティを使用してフィルターを指定できます。

これには非常に特殊な構文があり、ここで見つけることができます。

于 2011-09-19T10:26:02.007 に答える
1

グリムストーナーによる答えは十分に明確ではないかもしれないと思います.

実際に ViewerState プロパティを使用してフィルターを設定できますが、パブリック ゲッターしかないため、直接設定することはできません。回避策は、すでにロードされているコレクションの URI と変更されたビューアー ステートを渡す LoadCollection() メソッドを使用することです。Pivot Viewer がコレクションをリロードすると思うかもしれませんが、そうではありません。同一の URI を検出し、新しいビューアーの状態のみを適用するのは十分に賢いようです。

例:

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);

これが同じ質問を持つ他の人に役立つことを願っています。

于 2012-09-19T13:24:12.220 に答える