Измените фильтр в Silverlight Pivot Viewer, чтобы использовать AND вместо OR - PullRequest
3 голосов
/ 03 декабря 2010

Мне нужно изменить способ работы фильтра в средстве просмотра Silverlight Pivot.

У меня есть этот фильтр:

Ключевые слова:
x Ключевое слово a
_ Ключевое слово b
x Ключевое слово c
_ Ключевое слово d
_ Ключевое слово e

Фильтр генерирует «Ключевое слово a ИЛИ Ключевое слово c».Мне нужно «Ключевое слово А И Ключевое слово c».

Это возможно?

Любая помощь приветствуется!

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

То, что покерный злодей говорит правильно, но это не значит, что PivotViewer не является решением для вас.У меня была похожая проблема с системой, над которой я работал, и мне удалось найти подходящий способ сделать игру PivotViewer приятной.Это будет работать только для коллекций JIT, поскольку оно зависит от повторного извлечения данных.

По сути, система, над которой я работал, - это система управления делами.Большая часть данных, связанных с делом, является взаимоисключающей и поэтому соответствует модели PivotViewer, но есть также возможность добавлять «теги» к делу, и, как вы предлагаете, часто пользователь захочет использовать комбинационную логику.Вот что я сделал, чтобы решить эту проблему.

Во-первых, вам понадобится копия Silverlight Spy .Теперь на вкладке проводника SSpy вы можете развернуть дерево визуалов и посмотреть на внутренности PivotViewer.Вот как выглядит мой ...

alt text

Вы можете видеть, что я свернул прямо в элемент управления с именем 'PART_FacetPane'.Ниже есть группа CustomAccordianItem с.По сути, вам просто нужно создать подкласс PivotViewer (именно поэтому мой говорит PivotViewerEx) и переопределить метод OnApplyTemplate.

Здесь вы сможете использовать GetTemplateChild или некоторые другие средства для навигации по VisualTree и добавления другого элемента управления самостоятельно.В своем проекте я использовал простой элемент управления облаком тегов, который я ранее построил.

Что я делаю, так это обрабатываю события элемента управления облаком тегов и добавляю значения строки запроса к URL-адресу, используемому для построения CXML, и фильтрую данные на основе этих параметров.Это не так гибко, как возможность фильтровать данные «вживую», как это было раньше, но сейчас это решение.

Вероятно, стоит упомянуть, что в зависимости от ваших обстоятельств вам может потребоваться добавить окончательно сгенерированный случайным образомзначение строки запроса для URL CXML, поэтому вы не получите кэшированную копию данных.

HTH, Stimul8d.

0 голосов
/ 06 декабря 2010

нижняя строка ... НЕТ. Вы получаете то, что вы получаете с этим контролем. (пока)

но вы можете создать «фиктивный» фасет, который будет объединять все ключевые слова для элемента. Но если бы у вас было несколько ключевых слов, это выглядело бы очень уродливо.

...