【发布时间】:2012-01-15 09:58:14
【问题描述】:
有没有办法在 XtraGrid 的任何列中获取唯一值列表。当我单击列标题进行过滤时,它会显示列表(请参见附图'}')。
是否有任何 XtraGrid 对象或 Column 对象可以让我以数组或列表的形式获得它?
【问题讨论】:
标签: c# .net winforms devexpress xtragrid
有没有办法在 XtraGrid 的任何列中获取唯一值列表。当我单击列标题进行过滤时,它会显示列表(请参见附图'}')。
是否有任何 XtraGrid 对象或 Column 对象可以让我以数组或列表的形式获得它?
【问题讨论】:
标签: c# .net winforms devexpress xtragrid
像这样在 GridView 上实现它作为扩展方法怎么样
using System;
using System.Linq;
using System.Collections.Generic;
using DevExpress.XtraGrid.Views.Grid;
namespace Extensions
{
public static class XtraGridExtensions
{
public static IEnumerable<string> GetColumnsDistinctDisplayText(this GridView gv, string columnName)
{
if (gv == null)
{
throw new NullReferenceException("GridView is null");
}
if (gv.RowCount == 0)
{
return Enumerable.Empty<string>();
}
return (from int row in Enumerable.Range(0, gv.RowCount - 1)
select gv.GetRowCellDisplayText(row, columnName)).Distinct().OrderBy(s => s);
}
}
}
只要你想使用它就这样使用它
using Extensions;
...
string msg = string.Empty;
foreach (var item in gridView1.GetColumnsDistinctDisplayText("columnName"))
{
msg += item + "\n";
}
MessageBox.Show(msg);
【讨论】: