在初始化带有DataGridView的Form,放置列标题文本时触发该事件。因此,处理事件的函数在启动时会运行,与列数一样多。我该如何停止它并仅在用户对数据网格进行某些更改后才触发它?
已添加: 从CellValueChanged更改为CellEndEdit似乎可以解决问题。
答案 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();
}
}