Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中编辑具有绑定和更新列的DataGridView_C#_Windows_Winforms_Data Binding - Fatal编程技术网

C# 在C中编辑具有绑定和更新列的DataGridView

C# 在C中编辑具有绑定和更新列的DataGridView,c#,windows,winforms,data-binding,C#,Windows,Winforms,Data Binding,我有一个DataGridView,其中数据源是一个绑定列表。大多数列都是通过调用PropertyChanged。。。对于绑定列。有一列(有问题的一列)是DataGridViewComboBoxColumn,用户在其中从项目列表中选择一个项目 问题是DataGridViewComboBoxColumn不可用。它一直在闪烁-显然是在PropertyChanged事件发生时-无论我尝试选择什么项目,它都保持不变 知道我做错了什么吗?首先,添加代码示例,以便我们更好地理解您的意思 其次,你所做的听起来很

我有一个DataGridView,其中数据源是一个绑定列表。大多数列都是通过调用PropertyChanged。。。对于绑定列。有一列(有问题的一列)是DataGridViewComboBoxColumn,用户在其中从项目列表中选择一个项目

问题是DataGridViewComboBoxColumn不可用。它一直在闪烁-显然是在PropertyChanged事件发生时-无论我尝试选择什么项目,它都保持不变


知道我做错了什么吗?

首先,添加代码示例,以便我们更好地理解您的意思

其次,你所做的听起来很奇怪。为什么要在计时器上手动调用PropertyChanged?为什么不在类中实现INotifyPropertyChanged


或者您可以使用包装器,为您的项目实现ICustomTypeDescriptor和INotifyPropertyChanged。在这种情况下,包装器将自动为类添加INotifyPropertyChanged实现。在internet上搜索有关为什么需要ICustomTypeDescriptor以及它如何提供帮助的信息。

您可能遇到的一个问题是,DataGridViewComboBox控件在移动到另一个单元格的用户验证该单元格之前不会提交其值更改。使用CurrentCellDirtyStateChanged事件更改值时,可以强制执行此行为。

我承认我所做的有点奇怪。我确实在我的类中实现了INotifyPropertyChanged。该类还有一个计时器,用于根据概要文件结果调用某些元素的PropertyChanged,这些元素由于性能原因每秒更改很多次。就代码样本而言,它来自一个大型复杂的代码库。不过我会试试的。