我有以下代码:
string car = "cabrio";
int number = 20;
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Number", typeof(int));
dt.Rows.Add(car, number);
car = "sedan";
number = 30;
现在我希望如果更改了这两个变量(" car"和#34; number"),DataTable dt中的DataRow应该会自动更改为新值。
如何将这两个变量与DataRow绑定? 有可能吗?
BR
修改 更好的代码示例:
using System;
using System.Data;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Class object1 = new Class("cabrio", 20);
public DataTable DT = new DataTable();
public DataGridView DGV = new DataGridView();
public Form1()
{
InitializeComponent();
DT.Columns.Add("Car");
DT.Columns.Add("Value");
DT.Rows.Add(object1.car, object1.value);
DGV.DataSource = DT;
this.Controls.Add(DGV);
}
private void btn_ChangeValue_Click(object sender, EventArgs e)
{
object1.car = "sedan";
object1.value = 30;
}
}
}
和Class
我在这里用过:
namespace test
{
public class Class
{
public string car;
public int value;
public Class(string nameOfCar, int valueOfNumber)
{
car = nameOfCar;
value = valueOfNumber;
}
}
}
所以,现在如果我想通过点击DataGridView
更改btn_ChangeValue
中的值,它就不起作用。
答案 0 :(得分:0)
您无法将DataTable
/ DataRow
绑定到本地变量或字段。 是 .NET内置的一些数据绑定机制,但它们往往与UI相关,并依赖于非常复杂的属性更改通知和接口,如INotifyPropertyChanged
或ICustomTypeDescriptor
- 非常小众的东西。
也许这是一个X / Y问题,如果你告诉我们为什么你试图这样做,可以建议一个更好的选择。坦率地说,我也怀疑DataTable
不太可能成为解决大多数问题的一部分。