c# - WPF DataGrid 中基于基础数据集(及其类型)的动态 DataGrid 列

标签 c# wpf datagrid statistics datagridtemplatecolumn

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

为此,我有两个 DataGrid(-Views,目前在 WinForms 中)。在一个 DataGrid 中,每一行代表另一行中的一列。我可以在那里设置不同的变量(如数学/统计变量),其中包含“Header”、“DataType”、“ValidationBehaviour”、“DisplayType”等字段。我还可以在那里设置它的显示方式。一些列可以自动设置为 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 中的新列

如果有任何指向正确方向的指示,我将不胜感激。提前非常非常感谢! :)

最佳答案

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

Here is an MSDN article...

关于c# - WPF DataGrid 中基于基础数据集(及其类型)的动态 DataGrid 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927295/

相关文章:

具有用户定义的行数和列数的 C# 交错数组

c# - 在 Azure ServiceBus 上从 .NET Core 发送方向 .NET 4.6 处理程序发送消息

c# - 使用 MahApp.Metro 主题自定义 SaveFileDialog

Silverlight 3 BETA DataGrid 分组

c# - WPF:从 DataGrid.RowDetailsTemplate 获取指定控件的所有列表

c# - ASP.NET Web API DELETE 方法错误

C# - 将大文件加载到 WPF RichTextBox 中?

c# - WPF 中的嵌入式字体不起作用

c# - 在构造函数中设置 DataContext=this 和在 WPF 中绑定(bind)到 {RelativeSource Self} 之间的区别?

c# - 如何在 XAML 和 C# 中将字符串列表显示为 DataGrid(表)