Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21990
Как запустить анимацию в ответ на изменение свойства зависимости?

То есть я хочу так - в модели меняется свойство, источник может быть разный, в ответ представление запускает анимацию (которая акцентирует произошедшие изменения для пользователя, ну да это неважно)

Пока только приходит в голову определять PropertyChangedCallback, в нем генерировать RoutedEvent, который будет отлавливаться триггером, запускающим анимацию. Это годится только для собственных свойств и несколько громоздко. Есть ли способ попроще?

(запускать анимацию кодом не предлагать, само свойство не должно ничего знать об анимации)
19 апр 16, 13:41    [19077139]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21990
На всякий случай подчеркну - нужна реакция не на принятие свойством какого-то значения, что делает обычный триггер, а именно на факт любого изменения.
19 апр 16, 13:44    [19077159]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21990
В конечном итоге и в общем случае в WPF не хватает триггера, реагирующего на изменение значения. (интересно, а самому реально его написать, основываясь на TriggerBase?)

А с точки зрения кода? Ведь управление свойствами зависимости централизовано. И если есть всякие CommandManager и EventManager, нет ли чего-то, что позволяет получить событие изменения какого-либо свойства зависимости на указанном объекте?
20 апр 16, 16:33    [19084081]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4042
{Binding Path=Property1, NotifyOnSourceUpdated, NotifyOnTargetUpdated=True}
Потом ловим эти события через EventTrigger'ы, профит.
20 апр 16, 16:45    [19084187]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4042
"{Binding Path=Property1, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
сорян, на форуме нет Intellisense =)
20 апр 16, 16:46    [19084198]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21990
О какая штука, спасибо, в моих учебниках не было.

А что насчет кода? Единственный способ - переопределять DependencyObject.OnPropertyChanged, а как подписаться на обновление свойства не своего объекта?
20 апр 16, 17:01    [19084289]     Ответить | Цитировать Сообщить модератору
 Re: WPF: Как запустить анимацию в ответ на изменение свойства зависимости?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4042
Shocker.Pro
О какая штука, спасибо, в моих учебниках не было.

А что насчет кода? Единственный способ - переопределять DependencyObject.OnPropertyChanged, а как подписаться на обновление свойства не своего объекта?

не в коем случаи не подписывайся на события ViewModel из View =)
18492657 вот еще пример :)
20 апр 16, 17:29    [19084435]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить