【发布时间】:2011-02-25 00:26:52
【问题描述】:
我有一个概念性问题。我正在将我写的一些统计类包装到 WPF 中。
为此,我有两个 DataGrid(-Views,目前在 WinForms 中)。在一个 DataGrid 中,每一行代表另一个中的一列。在那里,我可以使用“Header”、“DataType”、“ValidationBehaviour”、“DisplayType”等字段设置不同的变量(如数学/统计变量)。在那里我还可以设置它应该如何显示。有些 Columns 可以自动设置为 ComboBoxColumns、一些 TextBoxColumns 等等。
所以,现在一旦我设置了这些列,我就可以转到另一个网格并输入我的数据。例如,我可能已经生成(在网格 1 中)一个名为“年度总工资”的列,其中输入了数值。另一列名为“教育”的“0=NoEducation”、“1=College Level”、“3=Universitary”等。这些标签在组合框中显示为文本,然后我后面的统计引擎选择相应的值(0-3 ) 用于计算(即序数、名义变量)。
太好了。在 WinForms 中,我基本上可以在代码中手动生成所有列,然后将我的数据添加到相应的单元格/行中。现在在 WPF 中,我认为这一定很容易实现。但是,昨天我开始使用 ICustomPropertyDescriptor (也许我太厚了)并没有给我想要的结果。
基本上,我只需要能够根据我拥有的数据动态生成具有不同布局、控件(组合框、简单输入、日期时间)的列(和行)。但我真的不知道该怎么办?
所以总结一下:
-
数据网格 1
- 目的是显示已在 DataGrid 2 中指定的列
- 在行中,用户可以根据列规范在列下方的行中添加任何类型的数据
-
数据网格 2
- 此网格中的每一行代表 DataGrid 1 中的一列
- 包含名称/标题、数据类型、验证行为、默认值、数据格式等字段。
- 还包含一个能够设置其显示方式的功能。用户可以从例如 ComboBoxColumn(并添加可用选项)、DateTime、普通 TextBox、CheckBox 等中进行选择。
- 添加完一行后,它将自动在 DataGrid 1 中显示为新列
我会很感激任何指向正确方向的指针。 非常非常感谢提前! :)
【问题讨论】:
标签: c# wpf datagrid statistics datagridtemplatecolumn