Я хочу повторно использовать некоторый код, который я написал, чтобы добавить некоторые функциональные возможности в представление данных. Я хочу, чтобы свойства и события представления данных по умолчанию отображались, поэтому я не хотел создавать новый пользовательский компонент. поэтому я попытался написать подкласс, который отлично работает. но мне также пришло в голову, что я могу написать автономный служебный класс, который принимает сетку данных в конструкторе и настраивает ее таким же образом. например,
public class
MyGrid
{
private DataGridView m_dg;
public MyGrid(DataGridView dg)
{
m_dg = dg;
m_dg.RowHeadersVisible = false;
m_dg.SortCompare += new DataGridViewSortCompareEventHandler(m_dg_SortCompare);
}
void m_dg_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
// do custom sorting here
}
}
поэтому где-то при запуске моего приложения я бы назвал
MyGrid g1 = new MyGrid(dataGridView1);
MyGrid g2 = new MyGrid(dataGridView2);
и т. Д. какие недостатки у этого подхода? кажется, что большая часть кода будет одинаковой, разница в том, как создать экземпляр расширенной сетки (перетащите подклассный элемент управления в форму против перетаскивания простого представления данных и вызовите код выше)