2016-03-03 70 views
0

我想将自定义类型的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> 

我怀疑在第二TextBlock的绑定。无论如何,我尝试了多种组合,但没有显示出来。

请指导。

编辑:添加更多的最终结果,集合填充正确,但没有显示在TreeView上。

+0

什么是错误?子节点没有显示? –

+0

@SzabolcsDézsi不只是孩子的节点。没有任何节点出现。树视图是空的。 –

+0

请按照以下建议来调试您的wpf绑定:http://stackoverflow.com/questions/337023/how-to-detect-broken-wpf-data-binding – Taterhead

回答

0
<TreeView ItemsSource="{Binding ErrorList}"> 
     <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Path=FilesList}"> 
       <TextBlock Foreground="Red" 
          Text="{Binding Path=Error}" /> 
       <HierarchicalDataTemplate.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding}" /> 
        </DataTemplate> 
       </HierarchicalDataTemplate.ItemTemplate> 
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate> 
    </TreeView> 

enter image description here

0

虽然zhaojingbo的回答是点上,我意识到我缺少的是有在ErrorDetail类属性一个基本的东西,而不仅仅是公共领域。

没有意识到WPF对于要求属性如此严格。

相关问题