在一个视图中将自动生成的列与自定义列组合在一起

时间:2015-01-26 14:27:13

标签: c# wpf xaml datagrid

我在绑定到我的视图时使用自动生成的列。

private ObservableCollection<Thing> _allThings;
public ListCollectionView AllThingsView { get; set; }

public Presenter()
{
  ...
  AllThingsView = new ListCollectionView(_allThings);
  ...
}

我刚刚了解到,客户希望在网格中显示的信息多于来自后场的信息。事实上,他们希望做两件事中的一件,不清楚哪一件,所以我必须为两者重构。

  1. 根据数据中已有的信息编译其他列。
  2. 根据不同的列表添加列(保证长度相同)。
  3. 在我的头脑中,我可以想象我需要引入一种新类型 ThingAndOtherThing 并构建它以便它可以自动生成列。但是,特别是如果只要求#1,我觉得还有另一种简单控制列视图的方法。

    调查一下,我意识到每个列都会调用一次自动生成事件,这不包括从那里管理 aditional 列的选项。一个人应该在哪里做到这一点?

1 个答案:

答案 0 :(得分:1)

嗯,在生成所有列之后调用了AutoGeneratedColumns事件。您可以在其处理程序中手动添加更多列。它肯定会与AutoGeneratingColumn事件相混淆,为每一列调用 之后,这一切都取决于您从何处获取数据。