通过编程将内容添加到TreeViewItem

4
我正在尝试创建一个带有控件的新TreeViewItem,如下所示:
<TreeViewItem>
   <TreeViewItem.Header>
       <StackPanel>
           <Button/>
       </StackPanel>
   <TreeViewItem.Header>
<TreeViewItem>

除此之外,我想在运行时进行(我正在使用C#),但我不知道如何做到这一点。你能帮忙吗?
这是我用来生成节点的代码。我想在其中插入一个数字上下控件。我还没有那个控件,但为了论据,让我们假设我想插入一个按钮。
    private void TreeView_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
        if (TreeView.SelectedNode != null)
        {
            if (((vcvscompiler.DataTypes.dataObjectv)(TreeView.SelectedNode.Tag))._vcardName.re == "adr_work")
            {
                foreach (string k in ((vcvscompiler.DataTypes.dataObjectv)(TreeView.SelectedNode.Tag))._prefs)
                {
                    TreeViewItem newChild = new TreeViewItem();
                    newChild.Header = k;
                    treeView1.Items.Add(newChild);
                }
            }
        }
    }

WPF:

<Window.Resources>

    <DataTemplate x:Key="myTaskTemplate">
        <StackPanel>
            <Button content="This is a button!" />
        </StackPanel>
    </DataTemplate>

</Window.Resources>

1
你能把 DataTemplate 放在资源中吗? - SLaks
抱歉,我以为你正在使用.HeaderTemplate - SLaks
1个回答

4
new TreeViewItem {
    Header = new StackPanel {
        Children = {
            new Button { ... }
        }
    }
}

顺便问一下,我该如何向新控件添加事件。它们似乎在上下文中无法识别。 - user646265
1
如果您想添加事件处理程序,您需要分解一个变量,因为您无法在实例初始化器中添加处理程序。 - SLaks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接