Если это ContextMenuStrip, с помощью которого вы связали контекстное меню с сеткой, вы можете обработать событие ItemClicked и обработать обновления ограниченного источника данных. GridGroupingControl по умолчанию отражает изменения, сделанные в базовом источнике данных, при условии, что источник данных поддерживает уведомление о любых изменениях (например, IBindingList, IEnumerable и т. Д.).
Следующий код иллюстрирует это, рассматривая ограниченный источник данных как DataView.
// Event Handler
this.gridGroupingControl1.ContextMenuStrip.ItemClicked += new ToolStripItemClickedEventHandler(ContextMenuStrip_ItemClicked);
// Method Invoked
void ContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
DataTable dt = (this.gridGroupingControl1.DataSource as DataView).Table;
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
dr[i] = 0; //default value
dt.Rows.Add(dr);
}
Для типов источников данных (таких как ArrayList), которые не генерируют уведомление самостоятельно для каких-либо изменений в нем, после обработки обновления базового источника данных можно обработать следующий код, чтобы обновить Inorder GridGroupingControl для отражения обновленный вид.
this.gridGroupingControl1.Reinitialize();