Я пытаюсь выяснить, как создать рекурсивное связывание в xaml. Я знаю о HierarchialDataTemplate, но это не то, что я хочу, потому что мой источник данных не является набором элементов. В частности, я создаю браузер исключений и пытаюсь найти наилучший способ выражения поля InnerException исключения (которое, конечно, является еще одним исключением, следовательно, рекурсией).
Этот браузер исключений является частью программы просмотра журнала, которую я создаю. Вот XAML для ListView:
<ListView x:Name="LogViewerOutput">
<ListView.ItemTemplate>
<DataTemplate DataType="Ushanka.Log.LogMessageEventArgs">
<Expander Style="{StaticResource ExceptionTreeStyle}" Width="Auto">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<Image Stretch="Fill" Width="16" Height="16" Margin="5"
Source="{Binding Path=Level, Converter={StaticResource LogLevelIconConverter}}" />
<TextBlock Text="{Binding Message}" />
</StackPanel>
</Expander.Header>
<Expander.Content>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Exception.Message}" />
<TextBlock Text="{Binding Exception.Source" />
<!-- Here I would like to somehow be able to recursively browse through the tree of InnerException -->
</StackPanel>
</Expander.Content>
</Expander>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Есть идеи? Это вообще возможно?