Flex: DataGrid и шаблон команд - PullRequest
1 голос
/ 31 марта 2011

Я использую шаблон команды, поэтому любые изменения состояния объекта должны происходить в ходе выполнения команды.Обычный itemeditor в DataGrid просто вносит свои изменения в базовый связанный объект, но мне нужно перехватить это изменение и заставить его использовать команду.

Я довольно новичок в гибкости, поэтому я ищуза идеи о том, как реализовать это.Основной пример - у меня есть объект с полем «дата».В сетке данных я использую гибкий компонент DateField в качестве itemeditor.Когда я выбираю новую дату, я не хочу, чтобы она обновляла источник данных, я хочу, чтобы он вызывал другой метод, чтобы получить доступ к вновь выбранному значению и передать его команде для выполнения.Любые советы будут с благодарностью.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

Используйте события itemEditBegin и / или itemEditEnd в DataGrid и создайте свою команду в обработчике. На этой странице есть несколько примеров захвата операции редактирования с этими событиями.

1 голос
/ 31 марта 2011

По-моему, вы слишком надуманы над этим, до такой степени, что это становится непригодным для использования. Зачем вам нужна команда, чтобы просто изменить данные на лету? Я занимаюсь Flex уже 3 года, но пока не видел, как это делается. Единственные команды времени используются для получения информации с сервера.

В любом случае, если вы действительно хотите реализовать это (вопреки моей рекомендации), вы, вероятно, захотите выполнить всплывающее сообщение о событии, когда контроллер прослушивает выше список отображения события, а затем запускает команду. Из средства визуализации предметов:

this.dispatchEvent(new Event('someEvent', true));

А затем вверх по списку отображения:

dataGrid.addEventListener('someEvent', someEventHandler);

А внутри обработчика вы можете запустить команду.

...