C# WPF-在GridView中打印数组属性

C# WPF-在GridView中打印数组属性,c#,wpf,arrays,gridview,C#,Wpf,Arrays,Gridview,我有这门课的名单: public class A { public string Name{ get; set; } public int ID { get; set; } public B[] B_details { get; set; } public int phone { get; set; } } 我想在GridView中显示它。 类B也有一些属性,其中包括属性名。 我的网格定义是: <Grid> <DataGrid Au

我有这门课的名单:

public class A
{
    public string Name{ get; set; }
    public int ID { get; set; }
    public B[] B_details { get; set; } 
    public int phone { get; set; }

}
我想在GridView中显示它。 类B也有一些属性,其中包括属性名。 我的网格定义是:

<Grid>
    <DataGrid AutoGenerateColumns="True" Name="dataGrid1" IsReadOnly="True" AlternationCount="2" />
</Grid>

问题是,因为它是自动生成的GridView—B_details列中的值都以“B[]数组”的形式显示。
如何显示该类所有B成员的姓名?

我可以想出两种方法:

1) 使用类而不是
B[]
,并重写其
ToString()
方法。所以你会有这样的想法:

public class BArray : List<B>
{
    public override void ToString()
    {
        return string.Join(Items.Select(item => item.Name), ", ");
    }
}

我可以想出两种方法:

1) 使用类而不是
B[]
,并重写其
ToString()
方法。所以你会有这样的想法:

public class BArray : List<B>
{
    public override void ToString()
    {
        return string.Join(Items.Select(item => item.Name), ", ");
    }
}

嗯,我真的不想改变一个类,这就是为什么我试图找到这个问题的“开箱即用”解决方案。尽管如此,你的第二个选择对我来说似乎是合适的,除了我仍然想让它“自动生成”。我仍然可以想出一个解决方案——但我需要知道——有没有办法将所有这些“DataTemplate”标记转移到C#中?因为如果答案是肯定的,我就完了。我只是想知道如何。。。谢谢@user2406262有一个
XamlReader
,它允许您从XAML字符串在C#中创建数据模板。@user2406262另一个选项:运行时键入和
ICustomTypeDescriptor
。这涉及的内容很少,但对于自定义DataGrid列生成器构造的内容非常有用。实际上,您可以将一个类(如
a
)包装为另一种类型,并更改其运行时类型,包括其属性、值等。好吧,我真的不想更改一个类,这就是为什么我试图找到这个问题的“开箱即用”解决方案。尽管如此,你的第二个选择对我来说似乎是合适的,除了我仍然想让它“自动生成”。我仍然可以想出一个解决方案——但我需要知道——有没有办法将所有这些“DataTemplate”标记转移到C#中?因为如果答案是肯定的,我就完了。我只是想知道如何。。。谢谢@user2406262有一个
XamlReader
,它允许您从XAML字符串在C#中创建数据模板。@user2406262另一个选项:运行时键入和
ICustomTypeDescriptor
。这涉及的内容很少,但对于自定义DataGrid列生成器构造的内容非常有用。实际上,您可以将类(如
a
)包装为另一种类型,并更改其运行时类型,包括其属性、值等。