Программно установить фильтры PivotViewer - PullRequest
2 голосов
/ 09 сентября 2011

У меня запущен и работает Silverlight PivotViewer, содержащий около 4000 элементов.

Я передаю параметры строки запроса на страницу, на которой размещается PivotViewer, для фильтрации элементов при открытии.

Как добавить фильтры в PivotViewer программным способом?

Я пробовал:

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

но все равно отображаются все предметы. Я также попытался проверить значение свойства AppliedFilters после того, как я установил некоторые фильтры с помощью пользовательского интерфейса, но он все еще содержит только фильтр, который я добавил выше.

Ответы [ 3 ]

2 голосов
/ 29 ноября 2012

Для PivotViewer-2

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

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

pvViewer.Filter = sFilter; //reassign filter
1 голос
/ 19 сентября 2012

Я думаю, что ответ от grimstoner может быть недостаточно ясным.

Вы действительно можете использовать свойство ViewerState для установки фильтров, но вы не можете установить его напрямую, поскольку у него есть только открытый метод получения.Обходной путь должен использовать метод LoadCollection (), передающий URI уже загруженной коллекции и измененное состояние средства просмотра.Можно ожидать, что 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);

Надеюсь, это поможет другим с тем же вопросом.

1 голос
/ 19 сентября 2011

Вы можете указать фильтры, используя свойство ViewerState.

У него очень специфический синтаксис, который можно найти здесь .

...