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
)包装为另一种类型,并更改其运行时类型,包括其属性、值等。