C# 基于反射获得的对象构建树状视图

C# 基于反射获得的对象构建树状视图,c#,wpf,reflection,proxy,C#,Wpf,Reflection,Proxy,有必要以树的形式显示元素,如图所示。对象本身是在编译时创建的 以这种形式进行的尝试 <TreeView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding LanguageInformation.Items}"> <TreeView.ItemContainerSt

有必要以树的形式显示元素,如图所示。对象本身是在编译时创建的

以这种形式进行的尝试

    <TreeView
            Grid.Row="1"
            Grid.Column="0"
            ItemsSource="{Binding LanguageInformation.Items}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}">
                    <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type local:LocalizationBrowserViewModel}" ItemsSource="{Binding LanguageInformation.Items}">
                    <TextBlock Text="{Binding}"/>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>

演讲课

public class Element
{
    public string Name { get; set; }
    public ObservableCollection<object> Items { get; set; }
    public Element()
    {
        this.Items = new ObservableCollection<object>();

    }
}
公共类元素
{
公共字符串名称{get;set;}
公共ObservableCollection项{get;set;}
公共元素()
{
this.Items=新的ObservableCollection();
}
}

元素类现在只允许一级层次结构。要支持N个级别,需要按如下方式更改
元素

公共类元素
{
公共字符串名称{get;set;}
公共ObservableCollection项{get;set;}
公共元素()
{
this.Items=新的ObservableCollection();
}
}
TreeView
需要替换为
ListView
,因为问题中提供的屏幕截图包含多个列
TreeView
不允许多列,但允许一个
ListView


WPF中的
ListView
支持
HierarchycalDataTemplate
。您可以参考实施。

谢谢。考虑到对象是代理,如何正确创建视图?如何在名称字段中输入数据?这里是另一个更新的屏幕截图。还有更多。我通过帮助反射获得对象(像对象一样键入)。这个对象在编译时会得到它的类型。屏幕截图中的代理包含一个对象实例。您可以使用反射更新这些属性的值。您能解释一下如何做到这一点吗?同时,是否可以将此对象显示为树?您可以通过查看反射样本。此外,还必须使用反射创建ViewModel集合以绑定ListView。