我正在尝试通过 XAML 将对象绑定到 treeviewcontrol WPF,但我将 treview 设为空。当我这样做时,treeview.items.add(GetNode())它的工作。
我正在使用 MVVM Framework(caliburn.Micro) 我想在 Xaml 中执行此操作,如何在 xaml 中分配项目源属性?我尝试创建 Node 类的属性并在属性中调用方法 GetNode(),并将该属性分配为树视图的 itemssource 并将 List 更改为 Observable 集合。仍然是相同的问题。
工作时 Xamltreeview.items.Add(GetNode())返回一个节点i并将节点集合分配给 Hireachial 模板。
<TreeView Name="treeview2"
Grid.RowSpan="2"
Grid.ColumnSpan="2"
ItemContainerStyle="{StaticResource StretchTreeViewItemStyle}" Width="300">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Nodes}">
<DockPanel LastChildFill="True">
<TextBlock Padding="15,0,30,0" Text="{Binding Path=numitems}" TextAlignment="Right"
DockPanel.Dock="Right"/>
<TextBlock Text="{Binding Path=Text}" DockPanel.Dock="Left" TextAlignment="Left" />
</DockPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
服务器端代码:
this.treeview2.Items.Add(GetNode());
GetNode 递归地构建一个 Node 类型的列表。
public class Node
{
public string Text { get; set; }
public List<Node> Nodes { get; set; }
public ObservableCollection<Node> Nodes{get;set;} // with list and observable collection same results
public int numitems { get; set; }
}