Привязка команд к событиям?

Библиотека open-uri использует константу для установки предела размера в 10 КБ для объектов StringIO.

> OpenURI::Buffer::StringMax
=> 10240 

Вы можете изменить эту настройку на 0, чтобы в open-uri никогда не создавался объект StringIO. Вместо этого это заставит его всегда создавать временный файл.

Просто добавьте это в инициализатор:

# Don't allow downloaded files to be created as StringIO. Force a tempfile to be created.
require 'open-uri'
OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
OpenURI::Buffer.const_set 'StringMax', 0

Вы не можете просто установить константу напрямую. Вам нужно удалить константу и затем установить ее снова (как указано выше), в противном случае вы получите предупреждение:

warning: already initialized constant StringMax

ОБНОВЛЕНО 18/12/2012 : Rails 3 не по умолчанию не требуется OpenURI, поэтому вам нужно добавить require 'open-uri' вверху инициализатора. Я обновил код выше, чтобы отразить это изменение.

12
задан djcouchycouch 2 June 2009 в 02:05
поделиться

4 ответа

Взгляните на Attached Command Behavior Марлона Греча, это может быть именно то, что вы ищете

7
ответ дан 26 October 2019 в 10:46
поделиться

Для обработки событий у вас должен быть код, который присоединяется к событию и выполняет вашу команду в ответ. Конечная цель - иметь в XAML:

  MouseMoveCommand="{Binding MyCommand}"

Для этого вам необходимо определить присоединенное свойство для каждого события, которое вы хотите обработать. См. этот для примера и структуры для этого.

5
ответ дан 26 October 2019 в 10:46
поделиться

Я не думаю, что вы можете использовать его в чистом XAML, но взгляните на Delegate Command .

0
ответ дан 26 October 2019 в 10:46
поделиться

Выполнить команду, перейти к кадру и делегировать команду поведение - довольно хороший образец. Его также можно использовать в Expression Blend.

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

0
ответ дан 26 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: