WPF-创建树视图

发布于 2024-10-29 03:48:04 字数 401 浏览 1 评论 0原文

我有可以表示层次结构的类型字段列表:List MyFields

public class Field
{
    public Field(string name, string value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public string Value { get; set; }
    public IList<Field> SubFields { get; set; }
}

如何将 MyFields 绑定到 TreeView?

编辑: 我忘了,我想例如。单击该项目时在消息框中显示该值。

I have list of type field that can represent a hierarchy: List MyFields

public class Field
{
    public Field(string name, string value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public string Value { get; set; }
    public IList<Field> SubFields { get; set; }
}

How can i bind MyFields to a TreeView?

EDIT:
I forgot, i want to eg. show the value in a message box when clicking on the item.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独行侠 2024-11-05 03:48:04

将 TreeViews ItemsSource 设置为要绑定的属性。

Set the TreeViews ItemsSource to the Property you want to bind with.

心碎无痕… 2024-11-05 03:48:04

您可以创建一个 HierarchicalDataTemplate 应放置在 TreeView 的资源中或更高级别的资源中,请确保将 DataType 设置为您的类以使其应用。

例如:

<HierarchicalDataTemplate DataType="{x:Type data:Field}"
                          ItemsSource="{Binding SubFields}">
    <ContentControl MouseDoubleClick="TreeViewItem_MouseDoubleClick">
        <TextBlock Text="{Binding Name}"/>
    </ContentControl>
</HierarchicalDataTemplate>
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    Field field = (sender as FrameworkElement).DataContext as Field;
    MessageBox.Show(field.Value.ToString());
}

您还需要一个根元素列表,可以将 TreeView 本身的 ItemsSource 绑定到该列表。

You can create a HierarchicalDataTemplate which should be placed in the resources of your TreeView or at an higher level, make sure to set the DataType to your class to make it apply.

Something like this for example:

<HierarchicalDataTemplate DataType="{x:Type data:Field}"
                          ItemsSource="{Binding SubFields}">
    <ContentControl MouseDoubleClick="TreeViewItem_MouseDoubleClick">
        <TextBlock Text="{Binding Name}"/>
    </ContentControl>
</HierarchicalDataTemplate>
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    Field field = (sender as FrameworkElement).DataContext as Field;
    MessageBox.Show(field.Value.ToString());
}

You also need a root-elements list to which you can bind the ItemsSource of the TreeView itself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文