我正在寻找一种简单的方法来检索WPF DataGrid的特定列中的所有项目。我有DataGrid,DataGridColumn和DataGridColumnHeader作为参考,但我似乎无法找到获取元素的逻辑方法。
使用DataGridColumn的Header属性不是一个选项,因为我在某些情况下使用自定义Header对象。
答案 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);