|
Триггерная анимация + обновление содержимого ItemsSource или других контейнеров
|
|||
---|---|---|---|
#18+
Проблема следующая, есть некий контейнер элементов источником для которого служит ICollectionView, элементам списка выступает UserControl у которого в зависимости от состояния зависимого свойства (DP) задана анимация. К примеру если свойство1 = true, то контрол плавно перетекает в голубой цвет, если false в красный. Проблема следующая: когда я делаю Refresh для вьюхи коллекции, то объект контейнер пересоздаёт все Items. В результате обновления у каждого элемента списка свойства который отличается от значения по умолчанию свойства DP (UserControl'а) обновляется и срабатывает триггер. Проще говоря, после обновления вьюхи вся анимация срабатывает по новой. На данный момент я нашел только 1 решение. Storyboard я запихал в ресурсы, а в контроле в коде в методе обновления свойства вызывается анимация если объект уже загружен IsLoaded == true, иначе вместо анимации цвет задается без анимации (сразу конечный цвет анимации) Тогда после рефреша объекта просто задается тот цвет который у них уже был определен, а если мы меняем состояние то срабатывает анимация. Есть более элегантный способ сделать тоже самое? До: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
После: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2014, 12:15 |
|
Триггерная анимация + обновление содержимого ItemsSource или других контейнеров
|
|||
---|---|---|---|
#18+
Есть MultiTrigger . У него свойство Conditions MicrosoftВозвращает коллекцию Condition объекты. Изменения значений свойств применяются, если соблюдаются все условия в коллекции. Может в него вторым условием добавить IsLoaded (только для него DP написать надо, потому что стандартное IsLoaded не DP)? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2014, 12:39 |
|
|
start [/forum/topic.php?fid=21&gotonew=1&tid=1441115]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 512ms |
0 / 0 |