Я взял ответ Даниила и сделал из него пример. Я думал, что размещение кода может быть полезным:
<Window x:Class="SampleWpfApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:SampleWpfApplication="clr-namespace:SampleWpfApplication">
<Window.Resources>
<DataTemplate DataType="{x:Type SampleWpfApplication:Result}">
<Label>Simple Result</Label>
</DataTemplate>
<DataTemplate DataType="{x:Type SampleWpfApplication:AssertionFailedResult}">
<Label>Assertion Failed!</Label>
</DataTemplate>
</Window.Resources>
<ContentControl x:Name="contentControl" Content="{Binding Path=Result}" />
</Window>
Далее, класс модели, который является контекстом данных окна:
public class Model
{
public Result Result { get; set; }
}
И в MainWindow я установил DataContext следующим образом:
DataContext = new Model()
{
Result = new AssertionFailedResult()
{
Success = false,
Description = "Assertion failed",
Expected = "1",
Actual = "1"
}
};
Так что с DataTemplate wpf знает, как визуализировать элемент управления без какого-либо дополнительного указания с моей стороны. Еще раз спасибо, Даниэль.