问题标签 [bindinglist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2393 浏览

c# - 循环遍历我的 BindingList 集合或它所绑定的 DataGridView

我有一个代表要“处理”的 XML 文件的类。我已经创建了这些对象的 BindingList 并将其绑定到 DataGridView 以便用户(即我)可以稍微“控制”一些东西并“看到”正在发生的事情。默认情况下,构造函数假定列表中的所有文件都将被“处理”:

DGV 中名为“Process”的第一列可能未选中,在这种情况下,我想跳过该文件(即行)并继续下一个。DGV 的最后 2 列旨在显示从已处理的 XML 文件发出的输出数以及放置某种消息(例如“OK”或“错误文本”)的位置。

简而言之,我希望 DataGridView 成为流程的可视化表示,在 2 个小列中回显结果,并允许用户通过取消选中它来跳过一行。

单击按钮开始处理 DGV 中的文件。到目前为止,这是我所描绘的(似乎有效,但 DGV 并未反映在 fileInfo.Rows 和 fileInfo.Message 中所做的更改):

----- 编辑更新:根据 David Hall 的建议,通过 BindingList (_filesToParse) 循环是解决此问题的好方法(工作代码如下):

最好的方法是什么?

  • 循环遍历 BindingList ?
  • 循环通过 DataGridView ?

我认为我需要的是“双向”绑定,但我可能不需要?我接近了吗?

-----------------编辑(更新)----------------

是的,XML 文件已经存在。以下是该部分的工作原理:

0 投票
2 回答
572 浏览

vb.net - 从 BindingList 中选择

我有以下对象

患者资格对象

它与患者资格医生专业具有一对多关系

我将 Child 值填充到 Grid 中,如下所示:-

它用表格PatientEligibilitiesDoctorsSpecialties中的所有列填充网格

ID
患者资格 ID
DoctorSpecialtyID
RegDate
RegUserID RegComputerID
CancelDate
CancelUserID
CancelComputerID

而不是我想显示的列 DoctorSpecialtyID

DoctorSpeciality.CodeDoctorSpeciality.EngName

注意, PatientEligibilitiesDoctorsSpecialtiesDoctorsSpecialties之间有一个外键

0 投票
2 回答
1971 浏览

c# - 如何为实用程序类中的属性设置器使用静态实用程序方法

我正在尝试在 DataGridView 和为 DGV 提供数据的 BindingList 之间实现双向绑定。有些列尚未反映基础列表中的更改,我认为这是因为我没有提供属性设置器来通知属性更改。我没有像为 Process 属性那样为 Rows 属性编写 setter 代码,而是试图变得更“优雅”,但我意识到我被困住了......

我偶然发现了一篇非常有趣的文章,提出了一种更优雅的方法,我正在尝试实现它的概念(请参阅): http ://www.gavaghan.org/blog/2007/07/17/use-inotifypropertychanged-与绑定列表/

这是我想使用的 Mike 文章中的代码(在我的 CBMI.Common 项目中建立为Utilities.cs ):

所以,我的第一个问题是:作者在他的文章中没有返回语句,我添加了它来解决编译器错误。我猜 eventHandler 执行并返回,这是作者的遗漏,这应该返回 true,因为该方法需要 bool 返回类型。这是正确的假设吗?

我的第二个问题显示了当我尝试使用上面的这个辅助方法时我是一个 C# 菜鸟。我已将此类编码到与上述相同的项目(和命名空间)中名为InputFileInfo.cs的单独文件中:

此类中第二个属性的设置器是我尝试使用 Mike 的静态方法的地方:

如果我删除 Utilities.Set 并将其编码如下:

..然后我得到编译器抱怨“当前上下文中不存在名称'Set'”

我尝试添加一个using Utilities;指令,但这并没有解决问题。

最后,我不明白参数:ref T oldValue,T newValue,也不是调用Set方法
的参数称为value 。

有人可以帮助我解决有关此代码的这些多重困惑,以便我可以使用这些更高级的想法吗?

---- 编辑更新---- 两个好的答案帮助我完成了这项工作。上面原始帖子中的“第二个问题”仍然有点难以捉摸。为每个请求关于如何打包它的“最佳实践”添加注释,以便我可以使用 Mike 原始文章中的简单调用语法。也就是说,我正在寻求仅通过方法名称来调用“帮助”静态方法。我想了解如何调用:

而不必编码为:

我通过编写 Utilities.Set 得到了这个工作,但我猜这个问题有点变形 - “我在哪里放置静态方法以及如何调用它们,所以我不必用类名“限定”它们?我想了解如何打包不需要对象实例的通常有用的“实用程序”类型方法。在这种情况下,静态方法称为 Set 但我希望能够添加其他静态方法,例如:

我有一个单独编译的 DLL(Vstudio 项目),只包含类文件。最终,我想我可以在其他应用程序中使用这个类。

声明这些静态方法的最佳位置在哪里,以便可以将它们调用为:

代替:

0 投票
1 回答
425 浏览

c# - DataGridView 对 EndNew 的不必要调用

我正在使用从该站点获得的名为 SimpleFilteredList 的类:

http://blogs.msdn.com/b/winformsue/archive/2007/12/06/filtering-code.aspx

它允许我在通过 BindingSource 添加到 DataGridView 时对业务对象应用基本排序。它很好地满足了我的目的,但是我不了解一个方面。

每次在 DataGridView 中选择新行时,都会提示调用 SimpleFilteredList 类中重写的 EndNew 函数。当最后一行是选择的前一行时,这尤其令人讨厌,因为它会强制执行排序算法。

所有列和 DataGridView 的 Readonly 设置为 True,AllowUserToAddRows 和 AllowUserToDeleteRows 设置为 False。

在 DataGridView 中选择新行时,如何停止调用此 EndNew 函数?

SimpleFilteredList 类中的 EndNew 函数:

0 投票
1 回答
546 浏览

c# - 部分 BindingList 到字符串数组

我正在使用BindingList来填充一些控件。

在表单的一部分上,我需要使用存储在其中的一些数据BindingList来创建和排列。假设我已经BindingList<CEmployee>并且想要将所有内容检索到一个字符串数组中CEmployee.Surnames,如果不遍历?CEmployeeBindingList

问候

塔夫

0 投票
1 回答
1170 浏览

c# - 更新数据网格视图

我想在 DataGridView 中显示大量数据(超过 1000 行和 15 列)。我使用 BindingList 作为 DataGridView.DataSource。BindingList 被系统地修改(15 秒) - 一些行被删除、修改或添加(不多,肯定少于所有行的数量)。

首次准备和显示 DataGridView 以及对其进行修改都没有所需的效率。我找到了一个简单的解决方案(还有一些类似的):

由于我添加了这些行,DataGridView 的构建和刷新速度更快。但是这种解决方案有一个不可接受的缺点。刷新列表后,滚动在列表顶部移动,选择丢失。是否有任何解决方案不仅可以快速修改 DataGridView 还可以滚动保持在以前的位置(更新前)并且不更改行选择?

0 投票
1 回答
1019 浏览

datagridview - foreach 给出 startindex 错误

以下代码给出了“'7'的值对'indexStart'无效。'indexStart'必须小于或等于3。参数名称:indexStart”错误!

1)为什么?2)我该如何解决?

我将绑定列表(从 filterevents 获取)转移到一个列表以避免错误,但它没有帮助。

我究竟做错了什么?我只想将一些项目添加到作为 datagridview 的数据源的绑定列表中,以便它会自动插入行。

谢谢

0 投票
2 回答
561 浏览

.net - 尝试从 ObservableCollection 或 BindingList 进行子类化时,为什么会出现 NullReferenceException?

我使用ObservableCollections 作为我的一些绑定的 ItemsSource,并且遇到了我想OnCollectionChanged手动调用以通知绑定引擎应重新检查列表的情况。(BindingList类比是OnListChanged)。

这就是麻烦开始的地方。令人抓狂的是,如果不继承protected这些类型,就不能调用这些方法。Ironpython 支持这一点,但是当我尝试子类化时,它失败了——即使我没有指定任何覆盖方法:

我要放弃了,我只想打一个该死的电话OnCollectionChanged!帮助!

0 投票
1 回答
165 浏览

datagridview - 如何根据BindingList自定义一个DataGridView的cell网格绑定到的

我在绑定到 BindingList 的 Win Forms 应用程序中使用 DataGridView,我想改进业务逻辑和表示的“分离”。

在我的 Form_Load 事件中,我调用了一个例程来构建一个 BindingList,然后我将 DGV 的 .DataSource 设置为这个 BindingList:

困扰我的是最后两个陈述;如您所见,我希望对从“行”和“消息”属性创建的列进行细微的修饰。我应该在最后两行中硬编码我的自定义对象的属性,这感觉很糟糕。

是否有更优雅的方式来自定义 DGV 的这两列 - 目标是充分利用以下提供的绑定:dataGridView1.DataSource = _filesToParse; 换句话说,仍然自定义列,但是从“业务”对象中的某些内容而不是当前技术中进行自定义。

这是我的InputFileInfo类(来自同一解决方案中的另一个项目):

}

}

0 投票
0 回答
244 浏览

c# - C# / WPF - 绑定列表包含和维护 HashSet 的内容>

我想要一个BindingList<T>包含对子列表中所有项目的引用和

这已经存在还是我应该创建一个?我想这将是一个AggregatedBindingList<T>具有构造函数的;

和方法;

我将在其中挂钩添加/删除/清除更改事件并相应地更新主控。

如果我们将每个数据结构想象成一个 BindingList (显示计数)并且仅将 Inhabitants 添加到叶列表中,但我想正确维护根,我的数据结构与下面的数据结构并不太相似。

我确定我可以写一些东西,但这一定是以前做过的,不是吗?