Один из коллег, с которыми я работал, был очень настроен на Singleton. Каждый раз, когда было что-то, что было своего рода менеджером или боссом как объект, он превратит это в одиночный элемент, потому что он полагал, что должен быть только один босс. И каждый раз, когда система подняла некоторые новые требования, это повернулось, там были совершенно допустимые причины позволить несколько экземпляров.
я сказал бы, что одиночный элемент должен использоваться, если модель предметной области диктует (не, 'предлагает'), что существует тот. Все другие случаи являются просто accendentally единственными экземплярами класса.
объявляют стиль для TabItem, а внутренний стиль изменяет изображение в триггере.
Объявите HeaderTemplate, а затем используйте триггер следующим образом:
<Trigger Property="IsSelected" Value="True">
<Setter Property="Source" TargetName="img" Value="images/customimage.png"/>
</Trigger>