WPF DataGrid:如何绑定到自定义属性

问题描述:

我有一个从LINQ生成的Customer类。这个班正在许多地方使用。我可以将一组客户绑定到DataGrid(WPF)。我想向DataGrid添加一个额外的列。列数据将取决于如何使用Customer类。以下是我尝试的选项:WPF DataGrid:如何绑定到自定义属性

  1. 在Customer类中添加额外的属性。这有效,但该属性不属于这里,因为它可能取决于如何使用类。
  2. 创建另一个派生自客户的类。这不起作用,因为我们不能将Customer转换为派生类,并且客户列表是我从数据库中获得的。
  3. 创建另一个包含Customer的类并重新实现所有相关属性。这很丑陋。
  4. 为所需的属性创建扩展方法。不幸的是,我们不能将DataGrid列绑定到扩展方法。

在这一点上,这些选项要么不工作,要么不理想。我希望有任何建议。

这听起来像是一个视图模型的工作,所以我赞成选项3,并创建一个包含Customer模型的CustomerViewModel,并添加所需的其他属性。我假设这个附加属性仅用于显示目的,这就是为什么你不愿意将其添加到Customer模型。