【问题标题】:WPF TreeView Never Populates Using HierarchicalDataTemplateWPF TreeView 从不使用 HierarchicalDataTemplate 填充
【发布时间】:2010-11-20 15:03:15
【问题描述】:

使用下面的代码,我的树视图永远不会填充。 谁能看出我做错了什么?

谢谢

public class FouList
{
  public string Source { get; set; }
  public List<FouData> ListOfFou { get; set; } 
}

 public struct FouData
{
   public string Name { get; set; }
}

<Window.Resources>
 <HierarchicalDataTemplate DataType="{x:Type local:FouList}"
                              ItemsSource="{Binding Path=ListOfFou}">
    <Border BorderBrush="Black"
                BorderThickness="2"
                CornerRadius="10">            
            <TextBlock Margin="10,0,0,0"
                           Text="{Binding Source}"></TextBlock>

    </Border>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:FouData}">
    <Border BorderBrush="Black"
                BorderThickness="2"
                CornerRadius="10">           
            <TextBlock Margin="10,0,0,0"
                           Text="{Binding Name}"></TextBlock>               

    </Border>
</HierarchicalDataTemplate>
</Window.Resources>


<TreeView Margin="26,0,35,12" Name="treeView1" Height="298"
   ItemsSource="{Binding Path=FouList}" VerticalAlignment="Top"/>

FouList FL = new FouList();
//code to populate FL
//I've debugged and can see it populating correctly
treeView1.DataContext = FL;

【问题讨论】:

    标签: wpf treeview hierarchicaldatatemplate


    【解决方案1】:

    treeView1ItemsSource 绑定不正确。我想你打算绑定到属性ListOfFou,而不是FouList

    <TreeView Margin="26,0,35,12" Name="treeView1" Height="298"
              ItemsSource="{Binding Path=ListOfFou}" VerticalAlignment="Top"/>
    

    【讨论】:

      【解决方案2】:

      我会尝试改变你的

      List<FouData> ListOfFou  { get; set; } 
      

      ObservableCollection<FouData> ListOfFou { get; set; }
      

      或使用NotifyPropertyChanged("ListOfFou");传播更改

      【讨论】:

      • 一般来说这是一个很好的建议,但除非您希望在集合更改时更新树,否则这是不必要的。示例代码应该可以工作,因为当 DataContext 更改时,树无论如何都会更新。
      猜你喜欢
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      相关资源
      最近更新 更多