Как получить выбранный объект на графике Syncfusion?

Диаграммы Syncfusion поддерживают выбор элементов данных в своих диаграммах (см. здесь ). Также существует событие, которое запускается при изменении выбора.

У меня есть список TransactionEntry объектов, привязанных к диаграмме, который включает такую ​​информацию, как Amount, Date (которые привязаны к диаграмме) и несколько других метаданных.

Я пытаюсь получить доступ к объектам в измененном событии, чтобы получить метаданные. Аргументы ChangedEvent предоставляют свойство с именем NewPointInfo (см. здесь), который относится к типу object. При отладке я вижу, что этот объект на самом деле является объектом ChartDataPointInfo, который также включает свойство NewItem, которое является именно тем объектом, который я ищу.

Теперь моя проблема в том, что я не могу привести объект NewPointInfo к типу ChartDataPointInfo из-за уровня защиты ChartDataPointInfo. Этот тип также не задокументирован в Syncfusion, поэтому я полагаю, я не собираюсь использовать этот тип?

У меня вопрос: как мне получить доступ к базовому объекту TransactionEntry из события SelectionChanged? Могу ли я использовать для этого NewPointInfo, и если да, то как?


person Bexo    schedule 11.02.2019    source источник


Ответы (2)


В настоящее время я не нахожусь на ПК для разработки, чтобы опробовать его, но я бы предложил попробовать изучить _ 1_ свойство из ChartSelectionChangedEventArgs.

Это тип ChartSegment, у которого есть свойство Item, которое, если я не ошибаюсь, должно быть установлено на базовый элемент коллекции, который вы ищете. Как говорят документы:

Элемент - получает или задает объект данных, которому принадлежит этот сегмент.

person Martin Zikmund    schedule 11.02.2019
comment
Это было почти решение. Свойство элемента - это не отдельный элемент, а весь список. Но вместе со свойством selectedIndex вы можете получить фактически выбранный элемент. Но список в свойстве item - это List ‹object›, поэтому его нужно сначала преобразовать ... Но спасибо за указатель в правильном направлении! - person Bexo; 11.02.2019

Вы можете получить доступ к своему объекту с помощью:

(e.SelectedSegment.Item as List<object>)?[e.SelectedIndex] as YourObject

Или проще:

(e.NewPointInfo as ChartSegment).Item as YourObject

Проблема в том, что вы пытались преобразовать e.NewPointInfo в ChartDataPointInfo, который является внутренним классом. ChartSegment является родительским классом ChartDataPointInfo, доступен и фактически содержит атрибут Item.

person Chadys    schedule 02.04.2019