如何在DataTable中将变量与DataRow绑定?

时间:2018-04-13 20:38:34

标签: c# variables datatable bind datarow

我有以下代码:

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中的值,它就不起作用。

1 个答案:

答案 0 :(得分:0)

您无法将DataTable / DataRow绑定到本地变量或字段。 .NET内置的一些数据绑定机制,但它们往往与UI相关,并依赖于非常复杂的属性更改通知和接口,如INotifyPropertyChangedICustomTypeDescriptor - 非常小众的东西。

也许这是一个X / Y问题,如果你告诉我们为什么你试图这样做,可以建议一个更好的选择。坦率地说,我也怀疑DataTable不太可能成为解决大多数问题的一部分。