Я пытаюсь привязать ObservableCollection пользовательского типа к TreeView.Binding ObservableCollection <MyClass> to TreeView
Обычай ErrorDetails класс выглядит следующим образом:
class ErrorDetail
{
public string Error;
public List<String> FilesList;
}
В моей ViewModel, я заполнить коллекцию, используя ниже Linq запроса. ErrorCollection является частью DataContext.
var results = (from p in Transactions
group p.FileName by p.Error.ToString()
into g
select new ErrorDetail() {Error = g.Key, FilesList = g.ToList()}).ToList();
errorCollection = new ObservableCollection<ErrorDetail>(results);
В TreeView я хочу показать каждую ошибку и связанные с ней файлы в качестве ее дочерних узлов.
Ниже мой XAML
<Grid Name="ErrorView" Margin="10">
<TreeView ItemsSource="{Binding Path=ErrorModel.ErrorDetails}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=FilesList}">
<TextBlock Foreground="Red" Text="{Binding Path=Error}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=FilesList}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
Сомневаюсь о Binding во 2-м TextBlock. Несмотря ни на что, я попробовал несколько комбинаций, но ничего не появилось.
Просим руководствоваться.
Редактировать: добавление большего количества в конец результата, коллекция заполняется правильно, но ничего не отображается в TreeView.
Какая ошибка? Не показаны дочерние узлы? –
@ SzabolcsDézsi Не только дочерние узлы. Ни один из узлов не отображается. Дерево древовидное пусто. –
Следуйте этим рекомендациям, чтобы отлаживать привязки wpf: http://stackoverflow.com/questions/337023/how-to-detect-broken-wpf-data-binding – Taterhead