Как добавить новое свойство (property) к объекту DataGridViewCell в WinForms?

В C# для добавления нового свойства (property) к объекту DataGridViewCell в WinForms можно воспользоваться механизмом наследования и созданием пользовательского класса, который будет унаследован от DataGridViewCell.

Для начала определим новый класс, например, CustomCell, который будет унаследован от DataGridViewCell:

using System.Windows.Forms;

public class CustomCell : DataGridViewCell
{
    private string customProperty;

    public string CustomProperty
    {
        get { return customProperty; }
        set
        {
            if (customProperty != value)
            {
                customProperty = value;
                OnPropertyChanged(new DataGridViewCellEventArgs(ColumnIndex, RowIndex));
            }
        }
    }

    protected virtual void OnPropertyChanged(DataGridViewCellEventArgs e)
    {
        // Метод, который вызывается при изменении свойства
        // Можно добавить здесь логику обновления отображения ячейки
    }
}

Теперь можно использовать новый класс CustomCell вместо стандартного DataGridViewCell в DataGridView:

DataGridView dataGridView1 = new DataGridView();
dataGridView1.Columns.Add("Column1", "Column1");

// Создание новой ячейки с пользовательским свойством
CustomCell customCell = new CustomCell();
customCell.CustomProperty = "Custom Value";

dataGridView1.Rows[0].Cells[0] = customCell;

Таким образом, вы создали новый класс CustomCell, добавили в него новое свойство CustomProperty и использовали его вместо стандартной DataGridViewCell в DataGridView. Теперь вы можете работать с пользовательским свойством в каждой ячейке вашего DataGridView.