【问题标题】:How to use SortMode in DataGridView如何在 DataGridView 中使用 SortMode
【发布时间】:2015-04-22 14:24:40
【问题描述】:

我正在尝试使排序适用于 DataGridView。当我单击列标题时,排序应该是自动的,但它不起作用。我做错了什么?

private void LoadDummyData()
{
    List<AddressBookDummy> list = new List<AddressBookDummy>();
    list.Add(new AddressBookDummy { Name = "Newman, Alfred", Type = "CAR" });
    list.Add(new AddressBookDummy { Name = "Skywalker, Luke", Type = "SUP" });
    list.Add(new AddressBookDummy { Name = "Skywalker, Leia", Type = "BEN" });

    addressBookGrid.DataSource = list;
}

private void InitializeGrid()
{
    addressBookGrid.RowHeadersVisible = false;
    addressBookGrid.ScrollBars = ScrollBars.Vertical;
    addressBookGrid.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    addressBookGrid.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic;
    addressBookGrid.Columns[1].SortMode = DataGridViewColumnSortMode.Automatic;
}

【问题讨论】:

标签: c# winforms datagridview


【解决方案1】:

你必须绑定一个实现排序的列表,here's an example

总结:

public Form1()
{
 InitializeComponent();

 SortableBindingList<person> persons = new SortableBindingList<person>();
 persons.Add(new Person(1, "timvw", new DateTime(1980, 04, 30)));
 persons.Add(new Person(2, "John Doe", DateTime.Now));

 this.dataGridView1.AutoGenerateColumns = false;
 this.ColumnId.DataPropertyName = "Id";
 this.ColumnName.DataPropertyName = "Name";
 this.ColumnBirthday.DataPropertyName = "Birthday";
 this.dataGridView1.DataSource = persons;
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多