У меня есть функция, которая возвращает IList <T> и является источником данных для DataGridView. Я узнал, что DataGridView не будет сортировать IList. Я читаю Этот стек QQ и A и пытаюсь реализовать SortableBindingList. Я должен делать что-то неправильно, потому что мой DataGridView пуст. Я также попытался получить доступ к элементу из SortableBindingSource с помощью TextBox и ничего.
using Microsoft.SqlServer.Management.Controls;
public partial class Form1 : Form
{
IBusinessLayer businessLayer;
IList<Category> categories;
SortableBindingList<Category> catSortable;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
businessLayer = new BusinessLayer();
categories = businessLayer.GetAllCategories();
catSortable = new SortableBindingList<Category>(categories);
categoryBindingSource.DataSource = catSortable;
categoryDataGridView.DataSource = categoryBindingSource;
textBox1.Text = catSortable[0].CategoryName;
}
}
Я проверил Microsoft.SqlServer.Management.Controls, правильно ли это выглядит?
namespace Microsoft.SqlServer.Management.Controls
{
public class SortableBindingList<T> : BindingList<T>
{
public SortableBindingList();
public SortableBindingList(IList<T> list);
protected override bool IsSortedCore { get; }
protected override ListSortDirection SortDirectionCore { get; }
protected override PropertyDescriptor SortPropertyCore { get; }
protected override bool SupportsSortingCore { get; }
protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction);
protected override void RemoveSortCore();
}
}
Я очень ценю помощь и помогаю мне учиться. Всем спасибо!