相关疑难解决方法(0)

如何在wpf应用程序中使gridview成为树视图的子元素

我试图从数据库填充数据网格(或gridview)作为树视图的子元素.我能够从树中的数据库中获取数据,但是,它似乎不适用于数据网格.这是我的xaml代码:

<Window x:Class="AttemptUsingHirarchichalData.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:data="clr-namespace:AttemptUsingHirarchichalData"
    xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Window1" Height="300" Width="300">
<Window.Resources>
    <HierarchicalDataTemplate DataType="{x:Type data:Root}"
                              ItemsSource="{Binding Path=RootList}">
        <TextBlock Text="{Binding RootNode}"/>

    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate DataType="{x:Type data:Nodes}"
                              ItemsSource="{Binding Path=ChildList}">

        <TextBlock Text="{Binding ChildNode}"/>
    </HierarchicalDataTemplate>
</Window.Resources>

<Grid>
    <TreeView Name="TreeView1">
        <TreeViewItem ItemsSource="{Binding Path=RootList}"
                      Header="{Binding RootNode}"/>
        <TreeViewItem ItemsSource="{Binding Path=dt_Age}"
                      Header="{Binding dt_Age}"/>
    </TreeView>

</Grid>
Run Code Online (Sandbox Code Playgroud)

我的代码隐藏是这样的:

InitializeComponent();

Root obj_Root = new Root();
obj_Root.RootNode = "RootNode";
obj_Root.RootList = new List<Nodes>();

Class1 obj_Class1 = new Class1();
DataTable dt_Age = obj_Class1.GetAgeInComboBox();

for (int i = 0; i < dt_Age.Rows.Count; i++)
{
    Nodes obj_AgeNode …
Run Code Online (Sandbox Code Playgroud)

wpf treeview datagrid

3
推荐指数
1
解决办法
1万
查看次数

具有多列的树视图

我正在尝试在 WPF 中创建具有多列的树视图。我很清楚,关于这个主题确实有很多问题。然而,他们在绑定数据时似乎采取了不同的方法。每个人似乎都设置了itemssource,就像我在后面的代码中填充treeview.items一样。这也是我不确定是否使用 ItemTemplate / HierarchicalDataTemplate 或正确方法来完成它的原因。(我感觉这应该是一个简单的步骤。)

我现在的代码如下:

Mainwindow.xaml 中的树视图

<TreeView x:Name="ProcesTree" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <TreeView.ItemTemplate>
        <ItemContainerTemplate>
            <Grid>
                <TextBlock Text="{Binding procesNummer}" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0"/>
                <TextBlock Text="{Binding procesNaam}" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0"/>
            </Grid>
        </ItemContainerTemplate>
    </TreeView.ItemTemplate>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

主窗口.xaml.cs

public List<Proces> processen = new List<Proces>();

public MainWindow() {
    InitializeComponent();
    processen = Database.getHoofdProcessen();
    processen = Extensions.OrderByAlphaNumeric(processen, p => p.procesNummer);

    foreach (Proces p in processen) {
        writeProcesses(p, ProcesTree.Items);
    }
}


public void writeProcesses(Proces p, ItemCollection tv) {
    tv.Add(p);

    List<Proces> processen = Database.getProcessenOnNummer((p.procesNummer + ".%"));
    if (processen.Count …
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview datatemplate

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

treeview ×2

wpf ×2

c# ×1

datagrid ×1

datatemplate ×1