Я бы, наверное, сделал это с помощью триггеров:
<Style TargetType="{x:Type inf:MyObject}">
<Setter Property="Header" Value="{Binding Header}" />
<Style.Triggers>
<DataTrigger Binding="{Binding ObjType}" Value="Type1">
<!-- A bunch of setters -->
</DataTrigger>
<DataTrigger Binding="{Binding ObjType}" Value="Type2">
<!-- Another bunch of setters -->
</DataTrigger>
</Style.Triggers>
</Style>
Разделение, вероятно, невозможно.
Хорошо, вы можете создавать отдельные стили, но вам нужно будет применять их вручную, используя ResourceKey:
<Style x:Key="Type1Style" TargetType="{x:Type inf:MyObject}"
BasedOn="{StaticResource {x:Type inf:MyObject}}">
<!-- Setters for type1 -->
</Style>
<Style x:Key="Type2Style" TargetType="{x:Type inf:MyObject}"
BasedOn="{StaticResource {x:Type inf:MyObject}}">
<!-- Setters for type2 -->
</Style>