У меня есть класс, который имеет собственную ObservableCollection, встроенную в класс.
Я пытаюсь создать пользовательский элемент управления, который также имеет ссылку на себя, чтобы отображать содержимое наблюдаемая коллекция. Тем не менее, я получаю ошибку во время выполнения, когда я пытаюсь запустить приложение.
Ошибка не слишком значительна: сбой синтаксического анализа XAML. E_RUNTIME_SETVALUE [Строка: 91 Позиция: 58] (это строка с рекурсивным вызовом пользовательского элемента управления)
Класс выглядит примерно так (он был сокращен в целях иллюстрации)
public class BookChapterVm : IBookChapterVm
{
public int Id {get;set;}
public string ChapterText {get;set;}
public ObservableCollection<IBookChapterVm> Chapters { get; set; } = new ObservableCollection<IBookChapterVm>();
}
Пользовательский элемент управления выглядит примерно так (опять же, ненужные части удаляются)
<UserControl
x:Class="Cgs.Ux.UserControls.HelpTextEditor.BookChapterEditorCtrl">
<ListView
ItemsSource="{x:Bind Vm.Chapters, Mode=OneWay}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="help:BookChapterVm">
<StackPanel Orientation="Horizontal">
<local:BookChapterEditorCtrl Vm="{Binding}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</UserControl>
Я также пытался настроить рекурсивный шаблон данных, но в основном он заканчивался той же ошибкой .