c# - 如何获取 ListChanged 事件的对象?
问题描述
要在 中显示数据dataGridView
,我使用DataTable
, BindingSource
。
我正在添加一个帖子。
问题。
如何获取新记录的字段Bs_ListChanged
?
namespace WinFormAppl
{
public partial class Form1 : Form
{
DataTable dataTable = new DataTable();
BindingSource bs = new BindingSource();
public Form1()
{
InitializeComponent();
MainMethod();
}
/// <summary>
/// Метод логики
/// </summary>
public void MainMethod()
{
bs.ListChanged += Bs_ListChanged;
ConnectDataToDataGridView();
AddColumnsDataTable();
AddRowsDataTable();
}
private void Bs_ListChanged(object sender, ListChangedEventArgs e)
{
//sender[i]. ????
}
#region Подготовка
/// <summary>
/// Connect data to DataGridView
/// </summary>
public void ConnectDataToDataGridView()
{
bs.DataSource = dataTable;
dgv.DataSource = bs;
}
/// <summary>
/// Add columns
/// </summary>
public void AddColumnsDataTable()
{
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Result", typeof(string));
}
///// <summary>
///// Add rows
///// </summary>
public void AddRowsDataTable()
{
dataTable.Rows.Add(new object[] { 1, "str_1"});
dataTable.Rows.Add(new object[] { 2, "str_2"});
dataTable.Rows.Add(new object[] { 3, "str_3" });
}
public void AddRowsDataTable_Test()
{
dataTable.Rows.Add(new object[] { 4, "str_4" });
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
AddRowsDataTable_Test();
}
}
更新 1。
更新 2。
private void Bs_ListChanged(object sender, ListChangedEventArgs e)
{
if (e.ListChangedType == ListChangedType.ItemAdded)
{
int i = e.NewIndex;
BindingSource bs_1 = sender as BindingSource;
DataRowView drv = bs_1[i] as DataRowView;
string s1 = drv.Row.ItemArray[0].ToString();
string s2 = drv.Row.ItemArray[1].ToString();
}
}
解决方案
推荐阅读
- python - 如何在具有模拟装饰器的测试中使用 pytest capsys?
- sql-server - 在两次之间选择
- python - Python在列中转换不同的日期格式
- c# - System.InvalidOperationException:ItemsControl 与其项目源不一致
- vb.net - 试图从本地 DataTable 中获取 ListBox 所选项目的总和到标签中
- javascript - 我们是否需要使用 async/await 将返回值包装到 Promise 中?
- apache - 使用 .htaccess mod_rewrite 将部分 URL 重写到特定页面
- html - 一个 div 与另一个 div 对接时包装,而不是堆叠在其上
- c# - 无法加载文件或程序集 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一
- go - 在golang中动态创建结构数组