如果 itemssource 包含 0 行要显示,则不会生成 DataGrid 中的列

发布于 2025-01-03 18:17:40 字数 171 浏览 0 评论 0原文

我正在将具有多列和零行的数据表分配给 WPF 数据网格。我正在使用自动生成的列。由于没有行可显示,因此根本不会触发 AutoGenerateColumn 事件。因为它以一种奇怪的方式呈现数据网格:一个模板行和现在的列。

有解决这个问题的方法吗?请指导。

问候, 普里扬克

I am assigning a datatable with multiple columns and zero rows to WPF data-grid. I am using auto-generated columns. As there are no rows to display the AutoGeneratingColumn event is not at all triggered. Because of the that it renders Data-grid in a weird manner: one single template row and now columns.

Is there any workaround for this problem? Please guide.

Regards,
Priyank

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热情消退 2025-01-10 18:17:40

这实际上是设计使然。数据网格在内部使用反射来根据 ItemSource 集合中可用的数据类型推断列。当没有项目时,数据网格无法正确显示列标题。

有两种可能的解决方案:

  1. 将网格绑定到静态资源。这样网格就会知道
    它将绑定到的 clr 类型并将正确生成
    列。
  2. 不要依赖 AutoGenerateColumns ;)

This is actually by design. The data grid uses reflection internally to infer the columns from the data type that is available in the ItemSource collection. When there are no items it is not possible for the data grid to display the column headers correctly.

There are two possible solution to this:

  1. Bind your grid to a static resource. This way the grid will know the
    clr type to which it will be bound and will correctly generate the
    columns.
  2. Do not rely on AutoGeneratedColumns ;)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文