为什么在绑定值更改时未引用属性

时间:2018-01-05 11:16:52

标签: c# datagridview

我意识到当DataGridView中的值更改(DataTable被绑定到DataGridView)时,不会引用Property get / set

我的代码就像这样

    private DataTable _dt;
    public DataTable Dt
    {
        get
        {
            return _dt;
        }
        set
        {
            _dt = value;
        }
    }

    public Form1()
    {
        InitializeComponent();

        Dt = new DataTable();
        Dt.Columns.Add("Age");
        Dt.Columns.Add("Name");
        Dt.Rows.Add(19, "kim");
        Dt.Rows.Add(25, "Lee");

        dataGridView1.DataSource = Dt;
    }

正如我所理解的那样,绑定意味着如果UI控件值发生变化,原始值也会发生变化。 所以我期望在更改DataGridView上的值时引用DataTable的Set属性。但没有。

请有人解释原因。

1 个答案:

答案 0 :(得分:0)

当您通常使用WPF时,您所描述的MVVM是正确的,但在WinForms中也很常见。您正在为整个数据网格设置数据源。当您更改网格内的值时,这不会触发设置Dt被调用。如果您希望在单元格值更改时收到通知,则需要使用网格中的一个事件。