【问题标题】:DevExpress GridControl with dynamic columns and rows具有动态列和行的 DevExpress GridControl
【发布时间】:2014-12-30 05:32:31
【问题描述】:

我在 WPF 上使用 DevExpress 14.1 GridControl,它必须绑定到动态源。我们不知道设计时的列数或行数,因此必须即时计算。

在执行时可能会更改源,添加更多行或列,或两者兼而有之(我可以有一个具有 3 列和 5 行的表,并且可以插入具有 4 列的第 6 行,将新列添加到前几行数据为空的模型)。

我使用 DataTable 作为网格的 ItemsSource,但它只会加载在设计时插入的数据。如果我在运行应用程序时添加列,则由于某种原因网格不会更新。

是否有可以满足这种需求的可观察对象?

【问题讨论】:

  • this 问题的重复。
  • 我找不到任何好的例子。它们都使用具有固定数量字段的自定义类的可观察集合。如果您有动态数量的列怎么办?如果您使用 ObservableCollection> 它不起作用。你有没有找到解决这个问题的方法?我还需要两种方式绑定数据。

标签: c# wpf devexpress


【解决方案1】:

必须以编程方式即时创建动态列并将其添加到 GridColumncollection。它们必须未绑定

GridColumn.FieldName 将此属性设置为与网格控件的基础数据源中的任何字段名称都不匹配的唯一字符串。

GridColumn.UnboundType 将此属性设置为一个值,该值标识列应该显示的数据类型(布尔值、日期时间、十进制、整数、字符串或对象)。

要检查 GridColumns 是如何创建和添加的,请查看您生成的文件。

有一个网格事件来处理未绑定的单元格数据集并获取(这是一个事件同时进行): ColumnView.CustomUnboundColumnData

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多