Я мог бы быть неосновным здесь, но звучит так, как будто вы хотите изменить DataTemplate в зависимости от типа объекта, который связан из списка разнородных объектов.
Если это так, вы хотитепосмотреть на DataTemplateSelectors или создать DataTemplates для каждого из типов, которые вы хотите поддерживать в списке.
Например, для квартиры у вас может быть:
<DataTemplate DataType="local:ApartmentBudget">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Text}" />
<TextBlock Text="{Binding Value}" />
</StackPanel>
</DataTemplate>
Автомобиль может выглядеть так:
<DataTemplate DataType="local:CarBudget">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Insurance}" />
<TextBlock Text="{Binding Loan}" />
<TextBlock Text="{Binding Maintenance}" />
</StackPanel>
</DataTemplate>
Тогда ваш ItemsControl может быть настроен следующим образом:
<ItemsControl ItemSource="{Binding BudgetItems}">
Правильный шаблон данных будет выбран в зависимости от типа данных.Вы можете получить еще больший контроль, создав собственный DataTemplateSelector.
См. https://msdn.microsoft.com/en-us/library/ms742521(v=vs.100).aspx для получения дополнительной информации.