Похоже, вы могли бы использовать DataTemplateSelector вместо IValueConverter, что-то вроде:
//namespace MyProject.ViewUtilities
public class MyDataTemplateSelector: DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
var localFrameworkElement = container as FrameworkElement;
var modelObject = item as ModelObject;
if(modelObject.BoolProperty){
return Template(localFrameworkElement, "WhenTrueDataTemplate");
}
else
{
return Template(localFrameworkElement, "WhenFalseDataTemplate");
}
}
private DataTemplate Template(FrameworkElement localFrameworkElement, string resourceKeyString)
{
return localFrameworkElement.FindResource(resourceKeyString) as DataTemplate;
}
}
Использовано что-то вроде:
<ComboBox xmlns:mpvu="MyProject.ViewUtilities"
ItemsSource="{Binding Path=MyModelObjectCollection}">
<ComboBox.ItemTemplateSelector>
<mpvu:MyDataTemplateSelector/>
</ComboBox.ItemTemplateSelector>
</ComboBox>
Если это не то, что выхочу, возможно, добавить пример кода к вашему сообщению.