【问题标题】:DataGridView - force empty DataSource for anonymous objectsDataGridView - 强制匿名对象为空 DataSource
【发布时间】:2017-12-05 10:35:08
【问题描述】:

我有一个DataGridView,它设计了两列:它们的DataPropertyNameNameValue

DataSource 这个DGV 来自SomeObject 类的集合,看起来像:

public class SomeObject
{
    public string Name { get; set; }
    public int Value { get; set; }
    public int SomeOtherProp1 { get; set; }
    public int SomeOtherProp2 { get; set; }
}

我只想在DataSource 中使用NameValue 属性,所以我用这两个属性创建了一个匿名对象(someObjectCollectionSomeObject objects 的集合):

dgv.DataSource = someObjectCollection.Select(o => new { o.Name, o.Value }).ToArray();

没关系 - 我现在需要实现的是手动将一个空集合分配给 dgv.DataSource 以将其清除。

我无法分配null,因为这样DataGridView 控件就会消失在窗体上。 我也将省略创建一个额外的 viev 模型类,只使用 DataSource 中使用的这两个属性。

那么,还有其他方法吗?

【问题讨论】:

  • 我打算建议使用另一个模型作为数据源,然后用您的选择填充它。然后我注意到了你的最后一句话。我可能会建议尝试修复您令人沮丧的dgv 然后将data source 设为空或将其设置为空白object 然后清除行?
  • 网格不应消失。你有一个最小的例子吗?

标签: c# winforms datagridview


【解决方案1】:

您可以尝试将最后一个有效结果设置为空结果,以防对象为空。

【讨论】:

  • 好的,我是这样做的:dgv.DataSource = Enumerable.Empty<SomeObject>().Select(o => new { o.Name, o.Value }).ToArray();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多