具有可定义列的WPF Datagrid UserControl

时间:2019-03-01 19:59:01

标签: c# wpf

我有一个类似这样的对象:

public class Item 
{
  public string Name;
  public int Id;
  public int Quantity;
  public decimal Volume;
  public decimal Cost;
}

我想创建一个可重用的用户控件,该控件将获取这些对象的列表并将其显示在datagrid中。诀窍在于,我想为控件的每个实例指定在数据网格中显示哪些属性。不幸的是,我的WPF技能不能胜任这些任务,并且我不想为要使用的每种组合创建特定的控件,因为这对于非常相似的代码项来说需要大量工作。对于如何实现此目标的指针的任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用数据网格的Columns属性与列进行交互,并隐藏不需要的列。

datagrid.Columns.RemoveAt(IndexOftheColumn);

或者如果您为列命名

datagrid.Columns.RemoveAll(x => x.Name = "column name");

或者如果您以后可能需要专栏

datagrid.Columns[IndexOftheColumn].Visibility = Visibility.Collapsed;

也可以使用带有绑定的纯Xaml进行此操作,但是由于您是Wpf的新手,因此建议您首先在后面的代码(Wpf控件的.cs)中进行此操作。

关于选择要隐藏的列,您可以在控件的构造函数中或使用绑定传递要删除的列的名称列表。有很多方法可以做到这一点。

或者您可以相反地做,并根据需要动态添加列。

https://www.learnopencv.com/why-does-opencv-use-bgr-color-format/