Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于底层数据集(及其类型)的WPF DataGrid中的动态DataGrid列_C#_Wpf_Datagrid_Statistics_Datagridtemplatecolumn - Fatal编程技术网

C# 基于底层数据集(及其类型)的WPF DataGrid中的动态DataGrid列

C# 基于底层数据集(及其类型)的WPF DataGrid中的动态DataGrid列,c#,wpf,datagrid,statistics,datagridtemplatecolumn,C#,Wpf,Datagrid,Statistics,Datagridtemplatecolumn,我有一个概念性的问题。我正在将我编写的一些统计类包装到WPF中 为此,我有两个DataGrid(-Views,目前在WinForms中)。在一个数据网格中,每行表示另一个数据网格中的一列。在那里,我可以用“Header”、“DataType”、“validationbehavior”、“DisplayType”等字段设置不同的变量(如数学/统计变量)。在那里,我还可以设置它的显示方式。有些列可以自动设置为ComboxColumns,有些TextBoxColumns,等等 所以,一旦我设置好这些列

我有一个概念性的问题。我正在将我编写的一些统计类包装到WPF中

为此,我有两个DataGrid(-Views,目前在WinForms中)。在一个数据网格中,每行表示另一个数据网格中的一列。在那里,我可以用“Header”、“DataType”、“validationbehavior”、“DisplayType”等字段设置不同的变量(如数学/统计变量)。在那里,我还可以设置它的显示方式。有些列可以自动设置为ComboxColumns,有些TextBoxColumns,等等

所以,一旦我设置好这些列,我就可以转到另一个网格并输入数据。例如,我可能已经(在网格1中)生成了一个名为“年度总工资”的列,并输入了数值。另一个名为“教育”的列包含“0=无教育”、“1=大学水平”、“3=大学”等。这些标签在组合框中显示为文本,我后面的统计引擎然后选择相应的值(0-3)进行计算(即序数、标称变量)

苏欧。在WinForms中,我基本上可以手工生成所有列的代码,然后将数据添加到相应的单元格/行中。现在在WPF,我想这一定很容易实现。然而,昨天我开始使用ICustomPropertyDescriptor,它(可能是我太厚了)没有给出我想要的结果

基本上,我只需要能够根据我拥有的数据动态生成具有不同布局、控件(组合框、简单输入、日期时间)的列(和行)。但我真的不知道该怎么做

总而言之:

  • 数据网格1

    • 目的是显示DataGrid 2中指定的列
    • 在行中,用户可以在列规范允许的列下方的行中添加任何类型的数据
  • 数据网格2

    • 此网格中的每一行表示DataGrid 1中的一列
    • 包含名称/标题、数据类型、验证行为、默认值、数据格式等字段
    • 还包含一个功能,可以设置其显示方式。用户可以从ComboBoxColumn(还可以添加可用选项)、DateTime、normal文本框、复选框等中进行选择
    • 添加完一行后,它将在DataGrid 1中自动显示为一个新列

我很感激任何指向正确方向的指针非常非常感谢提前!:)

查找数据模板。他们就是这样做的。UI由相关类型决定


查找数据模板。他们就是这样做的。UI由相关类型决定


简单的评论比否决票更有建设性。黄金法则。你希望有人如此异想天开地否决你的答案吗@SLYVAIN并不是根据社区()的说法,但它确实引起了你的注意。也要理解用户在找到与问题相关的帖子时的沮丧情绪,答案是一个死链接,回到原点(今天早上用户就是我)。答案中的一点代码和/或链接修复,我可以“不异想天开”并愉快地恢复我的否决票。例如,这个答案是,imho,无用。@Miiir事实上,2.5年后,这个链接现在起作用了。但是,除非对答案进行编辑,否则我的投票将被系统锁定。如果斯特拉顿修改他的答案,加入一些与OP的问题相关的代码,我很乐意删除否决票。一个简单的评论比否决票更有建设性。黄金法则。你希望有人如此异想天开地否决你的答案吗@SLYVAIN并不是根据社区()的说法,但它确实引起了你的注意。也要理解用户在找到与问题相关的帖子时的沮丧情绪,答案是一个死链接,回到原点(今天早上用户就是我)。答案中的一点代码和/或链接修复,我可以“不异想天开”并愉快地恢复我的否决票。例如,这个答案是,imho,无用。@Miiir事实上,2.5年后,这个链接现在起作用了。但是,除非对答案进行编辑,否则我的投票将被系统锁定。如果斯特拉顿修改他的答案,加入一些与OP的问题相关的代码,我很乐意删除否决票。