DataGridView CellValueChanged事件

时间:2019-07-15 12:41:03

标签: c#

在初始化带有DataGridView的Form,放置列标题文本时触发该事件。因此,处理事件的函数在启动时会运行,与列数一样多。我该如何停止它并仅在用户对数据网格进行某些更改后才触发它?

已添加: 从CellValueChanged更改为CellEndEdit似乎可以解决问题。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用数据网格的SelectionChanged属性在内容更改时触发事件?

<Grid>
<DataGrid> Name="TestDataGrid" SelectionChanged="DataGrid_EventName" />
</Grid>

在隐藏代码内,将捕获事件:

private void DataGrid_EventName(object sender, SelectionChangedEventArgs e)
{
  //Conduct work here
}

编辑:我很确定您仍然需要初始化DataGrid。

例如,您可以使用此事件从DataGrid中提取特定于行的信息:

private void DataGrid_EventName(object sender, SelectionChangedEventArgs e)
{
  DataGrid _dataGrid = (DataGrid)sender;
  DataRowView selectedRow = _dataGrid.SelectedItem as DataRowView;

  if (selectedRow != null)
  {
    RowItemList = new List<string>(); //List declared outside of this method...
    //add row information to the list
    RowItemList.Add(selectedRow.ToString());

    //or, get column-specific information
    string ColmnEntry = selectedRow[ColumnName].ToString();
  }
}