c# – XtraGrid中列中的唯一值列表

有没有办法在XtraGrid中的任何列中获取唯一值列表.当我点击列标题进行过滤时,它会显示列表(请参阅附图“}”).

是否有任何XtraGrid对象或Column对象,通过它我可以以数组或列表的形式获取它?

解决方法:

你如何在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);
上一篇:DevExpress v19.1新版亮点——WinForms篇(三)


下一篇:c# – 将Outlook.MailItem.body设置为富文本时出现异常