Мне нравится, разламывают мои классы на пакеты, которые связаны друг с другом.
, Например: Model For связанные с базой данных вызовы
Представление Классы, которые имеют дело с тем, что Вы видите
Управление классы Базовой функциональности
Util Любые разные классы, которые используются (обычно статические функции)
и т.д.
Похоже, нет никакого хорошего решения этой общей проблемы только для XAML. Я закончил тем, что написал свои собственные прикрепленные свойства, которые определяют все поведение анимации для данного элемента. Примерно так:
<DataTemplate>
<!-- ... -->
<Rectangle Fill="Gray">
<v:AnimationHelper.Animations>
<v:StandardColorStateAnimation TargetColorProperty="(Rectangle.Fill).(SolidColorBrush.Color)" TargetStateProperty={Binding State} />
</v:AnimationHelper.Animations>
</Rectangle>
<DataTemplate>
Остальное (создание анимации и т. Д.) Выполняется в программном коде.
Не могли бы вы попробовать что-нибудь подобное?
Я понимаю, что эта проблема немного устарела на момент публикации, но я нашел решение, для которого требуется очень мало кода.
Вы можете создать UserControl с помощью настраиваемые свойства (прокрутите вниз до рис. 8), которые содержат ваш прямоугольник, а также анимацию и триггеры состояния. Этот пользовательский элемент управления будет определять общедоступное свойство, такое как статус, которое будет вызывать изменение цвета при изменении.
Единственный требуемый код программной части - это создание переменных в коде.
Пользовательский элемент управления может использоваться повторно снова и снова без перезаписи раскадровки XAML или триггеров данных.