C# Treeview数据绑定到数据表

C# Treeview数据绑定到数据表,c#,wpf,xaml,data-binding,treeview,C#,Wpf,Xaml,Data Binding,Treeview,我是WPF的新手,非常感谢您在我正在努力解决的问题上给予我帮助。我需要在主应用程序菜单中的WPFTreeView中绑定一个TreeViewItem。我所需要的只是将单个数据表绑定到TreeViewItem(XAML和codebehind)的正确语法,这就是我目前所拥有的。请提供您的建议代码,谢谢您的帮助。为了再次说明问题,我只是尝试绑定项目列表树视图项的项目资源。TreeView显示了表中的5行,但它显示的是System.Data.DataRow而不是实际值,而是您的帮助 XAML 我已经对你的

我是WPF的新手,非常感谢您在我正在努力解决的问题上给予我帮助。我需要在主应用程序菜单中的WPF
TreeView
中绑定一个
TreeViewItem
。我所需要的只是将单个数据表绑定到
TreeViewItem
(XAML和codebehind)的正确语法,这就是我目前所拥有的。请提供您的建议代码,谢谢您的帮助。为了再次说明问题,我只是尝试绑定
项目列表
树视图项
项目资源
TreeView
显示了表中的5行,但它显示的是
System.Data.DataRow
而不是实际值,而是您的帮助

XAML


我已经对你的xaml和CreateList做了一些更改,请检查它是否适合你

xaml:我已删除Style=“…”并将ItemTemplate设置为在窗口资源部分中定义的datatemplate。TextBlock被弯曲到数据集的名称字段

<Window.Resources>
    <DataTemplate x:Key="itemsTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Path=Name}"/>
        </StackPanel>
    </DataTemplate>
</Window.Resources>

<Grid>
    <TreeView Height="277" HorizontalAlignment="Left" 
              Margin="64,24,0,0" Name="treeView1" 
              VerticalAlignment="Top" Width="268">
        <TreeViewItem Header="Create List" IsEnabled="True"/>
        <TreeViewItem Header="Search List" />
        <TreeViewItem Header="List Items" Margin="15,0,0,0" IsExpanded="true">
            <TreeViewItem Name="ItemList" Header="Codeset 1" IsExpanded="true"                               
                          ItemTemplate="{StaticResource itemsTemplate}"/>
        </TreeViewItem>
    </TreeView>
</Grid>
希望这有帮助,谢谢

public void CreateList()
{
    DataTable tbl = new DataTable("Items");
    tbl.Columns.Add("Name");

    DataRow row = tbl.NewRow();
    row["Name"] = "Fruits";
    tbl.Rows.Add(row);

    DataRow row2 = tbl.NewRow();
    row["Name"] = "Vegetables";
    tbl.Rows.Add(row2);

    DataRow row3 = tbl.NewRow();
    row["Name"] = "Meats";
    tbl.Rows.Add(row3);

    DataRow row4 = tbl.NewRow();
    row["Name"] = "Drinks";
    tbl.Rows.Add(row4);

    DataRow row5 = tbl.NewRow();
    row["Name"] = "Bread";
    tbl.Rows.Add(row5);

    //This is not working
    ItemList.ItemsSource = tbl.Select();
}
<Window.Resources>
    <DataTemplate x:Key="itemsTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Path=Name}"/>
        </StackPanel>
    </DataTemplate>
</Window.Resources>

<Grid>
    <TreeView Height="277" HorizontalAlignment="Left" 
              Margin="64,24,0,0" Name="treeView1" 
              VerticalAlignment="Top" Width="268">
        <TreeViewItem Header="Create List" IsEnabled="True"/>
        <TreeViewItem Header="Search List" />
        <TreeViewItem Header="List Items" Margin="15,0,0,0" IsExpanded="true">
            <TreeViewItem Name="ItemList" Header="Codeset 1" IsExpanded="true"                               
                          ItemTemplate="{StaticResource itemsTemplate}"/>
        </TreeViewItem>
    </TreeView>
</Grid>
DataTable tbl = new DataTable("Items");
tbl.Columns.Add("Name");

DataRow row = tbl.NewRow();
row["Name"] = "Fruits";
tbl.Rows.Add(row);

DataRow row2 = tbl.NewRow();
row2["Name"] = "Vegetables"; // original code has "row" here
tbl.Rows.Add(row2);

DataRow row3 = tbl.NewRow();
row3["Name"] = "Meats";
tbl.Rows.Add(row3);

DataRow row4 = tbl.NewRow();
row4["Name"] = "Drinks";
tbl.Rows.Add(row4);

DataRow row5 = tbl.NewRow();
row5["Name"] = "Bread";
tbl.Rows.Add(row5);

//ItemList.ItemsSource = tbl.Select();
ItemList.ItemsSource = new DataView(tbl);