小编Ric*_*_TX的帖子

使用编程排序绑定到DataGridView的可排序BindingList

我已经在http://msdn.microsoft.com/en-us/library/aa480736.aspx上实现了SortableSearchableList类,并为它添加了一个Sort方法,如下所示:

public void Sort(PropertyDescriptor prop, ListSortDirection direction)
{
ApplySortCore(prop, direction);
}
Run Code Online (Sandbox Code Playgroud)

这个类在通过单击任何列标题对DataGridView进行排序时起作用,但是我需要能够以编程方式调用指定列的Sort方法(在本例中使用sortButton控件).我在网上找到的几个代码示例建议获取列的PropertyDescriptor并将其传递给ApplySortCore方法.我还没有那个工作.我可以获取DataGridView或SortableSearchableList的PropertyDescriptorCollection属性,但似乎无法获取Find方法来获取指定列/成员的PropertyDescriptor.这是我的其余代码:

namespace SortableBindingListTest
{
public partial class Form1 : Form
{
    private SortableSearchableList<Tags> alarms = new SortableSearchableList<Tags>();
    public Form1()
    {
        InitializeComponent();
        alarms.Add(new Tags("some text", "1"));
        alarms.Add(new Tags("more text", "2"));
        alarms.Add(new Tags("another one", "3"));
        dataGridView1.AutoGenerateColumns = false;
        dataGridView1.AllowUserToAddRows = true;
        dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
        dataGridView1.RowHeadersVisible = false;
        dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
        DataGridViewTextBoxColumn alarmColumn = new DataGridViewTextBoxColumn();
        alarmColumn.DataPropertyName = "Alarm";
        alarmColumn.Name = "Alarm";
        alarmColumn.HeaderText = "Alarm";
        DataGridViewTextBoxColumn messageColumn = new DataGridViewTextBoxColumn(); …
Run Code Online (Sandbox Code Playgroud)

c# data-binding datagridview bindinglist winforms

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

bindinglist ×1

c# ×1

data-binding ×1

datagridview ×1

winforms ×1