Binded DataGridView仅更新当前选定的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Binded DataGridView仅更新当前选定的行相关的知识,希望对你有一定的参考价值。

我正在努力让我的DataGridView控件自动更新我的对象模型中的对象的值。我有对象数组,我通过以下代码绑定到我的DataGridView

    Dim bs As BindingSource = New BindingSource()
    bs.DataSource = aryJoints
    DataGridJoints.DataSource = bs

我使用INotifyPropertyChanged在对象模型中引发事件。以下是我的“公共班级联合”

    Implements System.ComponentModel.INotifyPropertyChanged
    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

在GoalPosition属性中,我有以下内容:

    Private _GoalPosition As Double

    Property GoalPosition() As Double

        Get
            Return _GoalPosition
        End Get

        Set(ByVal Value As Double)
            _GoalPosition = Value

            RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("GoalPosition"))

        End Set

    End Property

如果我从相同的表单或其他形式更新属性aryJoints(0).GoalPosition,DataGridView只会在选择该行时更新DataGridView中的GoalPosition字段。如果我在另一行上然后移动到有更改的行,则该行将使用最新值进行更新。

根据我的理解,一旦我对正在引发的事件进行了适当的绑定,任何单元格都应该使用新值自动更新。我不应该在那个单元格中,或者为表单选择该行来反映更改。

如果我调用DataGridJoints.Refresh(),DataGridView会更新所有值。但是创建绑定数据源的重点是避免调用.refresh。将有许多表单和操作从不同的地方更新对象模型,我需要各种表单上的DataGridViews自动更新自己。

我错过了什么步骤或做错了什么?

以上是关于Binded DataGridView仅更新当前选定的行的主要内容,如果未能解决你的问题,请参考以下文章

每次更新 datagridview 时如何创建历史日志

idea安装jclasslib和BindEd,以及使用

idea安装jclasslib和BindEd,以及使用

php 查询生成器/ ELoquent To Binded SQL

datagridview中删除行并更新数据库

如何在 Windows 窗体 C# 中单击按钮通过 DataGridView 更新数据库中的布尔字段