如何检查哪个DataGrid在ContextMenu中触发了一个事件
本文关键字:事件 一个 DataGrid 何检查 检查 ContextMenu | 更新日期: 2023-09-27 18:08:53
我创建了一个上下文菜单,该选项允许用户清除DataGrid中的所有项。所有工作都很好,但我想用一种方法优化算法,特别是我想这样做:
-
用户进入三个DataGrid中的一个,按鼠标右键,删除该表中的选项
-
一个启动方法的方法,这个方法应该这样做:
-
检查哪个表触发了事件,获取DataGrid名称并删除已触发事件的DataGrid的所有行。这是我的代码XAML code:
ContextMenu x:Key="Squadre_ContextMenu"> <MenuItem Header="Pulisci Tabella" Click="ClearTable_Click"> </MenuItem> </ContextMenu>
-
private void ClearTable_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine(((DataGrid)sender).Name.ToString()); //exception returned...
//datagrid.ClearValue();
}
在类中我有属性函数
public static void removeRows(DataGrid name passed by parameter)
{
var grid = parameter passed;
var mygrid = parameter passed;
if (grid.SelectedIndex >= 0)
{
for (int i = grid.SelectedItems.Count - 1; i >= 0; i--)
{
mygrid.Items.Remove(grid.SelectedItems[i]);
};
}
grid = mygrid;
}
注意:datagrid变量是类datagrid的一个实例。该类包含删除所有行的函数。
为什么要传递网格的名称呢?为什么不直接将网格本身传递给函数并以这种方式对其进行操作呢?
private void ClearDataGrid(DataGrid aDataGrid)
{
// clear aDataGrid's contents here
}
只需调用函数,并将您想要清除的DataGrid传递给它。
您可以使用以下信息来确定单击了哪个控件:
确定在