c# - 如何将自引用表绑定(bind)到 WPF TreeView

标签 c# wpf entity-framework data-binding treeview

从 edmx 绑定(bind)自引用表的最佳解决方案是什么:

enter image description here

WPF TreeView 控件有类似的东西:

enter image description here

最佳答案

我使用这个 Binding Converter 解决了这个问题:

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var item = value as MyTable;
        return  item.MyTable1.Where(i => i.parent_id== item.id); //return children
    }

.xaml:

<TreeView Name="treeview1" ItemsSource="{Binding Converter={StaticResource HierarchyConverter}}" ItemTemplate="{StaticResource ItemTemplate}" >
      <TreeView.Resources>
            <local:HierarchyConverter x:Key="HierarchyConverter" />
            <HierarchicalDataTemplate x:Key="ItemTemplate" ItemsSource="{Binding Converter={StaticResource HierarchyConverter}}">
                  <TextBlock Text="{Binding element_name}" />
            </HierarchicalDataTemplate>
      </TreeView.Resources>
</TreeView>

.cs:

treeview1.ItemsSource = db.MyTable.Where(x => x.partnt_id== null);//elements that have no parent

关于c# - 如何将自引用表绑定(bind)到 WPF TreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161963/

相关文章:

c# - 如何使用 C# 以编程方式在 OpenFile 对话框中选择文件

wpf - 如何绑定(bind)到 ContentControl 的数据模板中的数据

wpf - Silverlight/WPF 设置十六进制颜色的椭圆

wpf - 如何编辑 ViewModel 对象的属性,但仅在单击 View 中的按钮时应用更改

c# - Entity Framework 代码首先使用额外的键进行多对多

c# - EntityCollection 已经初始化

c# - 附加事件?如何在运行时删除 WPF DataGrid 的 ScrollChanged 事件处理程序

c# - 在 WPF C# TreeView 中获取子节点的父节点

c# - Entity Framework 不声明 datetime.now 为空

c# - 什么是 Action <字符串>?