【问题标题】:WPF Datagrid UserControl with definable columns具有可定义列的 WPF Datagrid UserControl
【发布时间】:2019-07-23 21:24:03
【问题描述】:

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

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

我想创建一个可重用的用户控件,它将获取这些对象的列表并将它们显示在数据网格中。诀窍是我想为控件的每个实例指定哪些属性显示在数据网格中。不幸的是,我的 WPF 技能无法胜任任务,我不想为我想要使用的每个组合创建一个特定的控件,因为对于非常相似的代码项来说,这感觉像是很多工作。任何有关如何完成此操作的指针的帮助将不胜感激。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

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

    datagrid.Columns.RemoveAt(IndexOftheColumn);
    

    或者如果您为列命名

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

    或者如果您以后可能需要列

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

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

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

    或者你可以做相反的事情,根据你的需要动态添加列。

    Note that this question has been asked before

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2014-05-03
      • 2017-12-18
      相关资源
      最近更新 更多