WPF DataGrid - 从列

时间:2016-04-14 13:08:08

标签: c# wpf datagrid

我正在寻找一种简单的方法来检索WPF DataGrid的特定列中的所有项目。我有DataGrid,DataGridColumn和DataGridColumnHeader作为参考,但我似乎无法找到获取元素的逻辑方法。

使用DataGridColumn的Header属性不是一个选项,因为我在某些情况下使用自定义Header对象。

1 个答案:

答案 0 :(得分:0)

如果您已经拥有DataGrid的实例,那么这样做非常简单。这是一个简单的扩展方法,您可以使用它来获取DataGrid列中所有项的可枚举。

namespace Extensions
{
    public static class DataGridExtension
    {
        public static IEnumerable<FrameworkElement> GetItemsInColumn(this DataGrid dg, int col)
        {
            if (dg.Columns.Count <= col)
                throw new IndexOutOfRangeException("Column " + col + " is out range, the datagrid only contains " + dg.Columns.Count + " columns.");
            foreach (object item in dg.Items)
            {
                yield return dg.Columns[col].GetCellContent(item);
            }
        }
    }
}

然后调用你可以做的方法,

dg.GetItemsInColumn(colNumber);