问题标签 [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 投票
4 回答
2169 浏览

c# - 对 BindingList 进行反向排序

我有一个从绑定到DataGrid的BindingList(T)继承的自定义类。

但是,DataGrid是自上而下填充的,我希望它是自下而上填充的。所以底部项目是索引 0 而不是顶部项目。

如何更改我的BindingList(T)以便DataGrid反向读取它?

0 投票
3 回答
1956 浏览

c# - 从 BindingList 派生的类的公共字段/属性不会序列化

我正在尝试序列化一个派生自BindingList(Floor)的类,其中Floor是一个仅包含属性Floor.Height的简单类

这是我的课程的简化版本

我将使用以下代码序列化 CustomBindingList 的实例。

然而上面的testString最终被设置为以下 XML:

如何让“publicField”或“publicProperty”也序列化?

0 投票
3 回答
3954 浏览

c# - 是什么导致了 BindingList 中的 ListChangedType.ItemMoved ListChange 事件?

我有一个在DataGrid中显示的BindingList(T)。我正在监视ListChanged事件并在引发ListChanged事件时执行不同的操作。

我正在检查事件的ListChangeType参数以检查列表是如何更改的,然后做出相应的响应。但是,我注意到有一个ListChanged事件类型ItemMoved

我有“上移”和“下移”按钮来在列表中上下移动项目。但这些实际上是删除选定的项目,然后将其重新插入到更高或更低的位置。

但是,我没有看到任何BindingList(T)方法看起来会移动列表中的项目。那么我是否遗漏了某些东西,或者只是没有办法在 BindingList 中移动一个也会引发 ItemMoved 类型 ListChanged 事件的项目?

0 投票
2 回答
4527 浏览

vb.net - 从绑定列表中获取已删除项目的索引

我能够获得添加到 BindingList 的项目的索引。当我尝试获取索引时,如果已删除的项目出现错误

这是我的代码

编辑:也欢迎 C# 中的答案....有人吗?

0 投票
1 回答
210 浏览

c# - 我的一些课的成员不会出现在绑定到 BindingList 的 datagridview 上

和一个BindingList aList;

还有一个带有一堆 DataGridTExtBoxColumns 的网格,我尝试将它们绑定到上面的(已经填充的)列表,例如:

但在运行时,只有我的 colDate 和 colTime 列正确填充。所有其他都是空白的。当我专门Grid.Rows[idx].Cells[idx].Value查看其他列时,它都是空的。

此外,如果我将 AutoGenerateColumns 设置为 true,我会看到一个额外的列 NoteID,它也已正确填写,但 ANote、Amount、ADate、AName 和 Note 字段仍然是空白的!

列表中的数据没有任何问题..所有类成员都有有效值。

除非我遗漏了一些东西,否则这似乎是 BindingList 或 DataGridView 的问题。如果没有,关于如何调试它的任何想法......这是一个非常简单的测试用例!

0 投票
2 回答
3344 浏览

c# - 在 C# 中使用 DataGridView 和 BindingList 时的线程安全建议

我正在写一个记录事件的类。我的 LogClass 实现为单例,系统中的任何类都可以写入日志条目。这些条目存储在一个列表中,当缓冲区被填满时,它们被转储到磁盘中。

我在执行期间使用 DataGridView 来显示 LogClass 的内容,因此我使用了 BindingList 以便查看器会自动更新。

我想知道我的班级的线程安全性如何。每次我向列表中添加一个新条目时,以及当我遍历列表以将其转储到磁盘时,我都会使用“锁定”。除了 DataGridView 之外,该类基本上是只写的,因为没有从日志中读取的选项,只能将条目添加到日志中。转储在内部执行,这是唯一一次在 BindingList 上有明确的读取命令。

所以我真正关心的是 DataGridView 和 BindingList 发生了什么?每次列表更改时,BindingList 都会引发一个事件。添加新条目时这似乎不是问题,因为添加完成时会引发事件。

我的 Dump() 代码是:

即使我在整个迭代过程中锁定了列表,也会向查看器抛出一个事件,该列表已更改(由于删除),因此被 DataGridView 读取。在更改列表时,我真的不希望对列表进行任何读/写。有任何想法吗?

0 投票
1 回答
527 浏览

winforms - 在 Winforms DataGridView 中编辑业务对象

是否可以编辑作为 BindingList 绑定到 Winforms DataGridView 的业务对象的属性(一个属性,一列)?

还是我必须使用 DataSet 或 DataTable?

我无法让单元格进入编辑模式。

0 投票
2 回答
1097 浏览

devexpress - XtraGrid 无法正确显示新添加的行

我正在使用 DevExpress 2.9.5 的 XtraGrid 来显示一组动态线条的吸墨纸。吸墨纸被集成到另一个应用程序中,这就是它必须基于 UserControl 类并实现几个自定义接口的原因。

由于使用 BindedList 将数据绑定到控件,因此任何更改都应自动反映在表单中。如果我尝试向 fDeals 添加新行,如下所示:

...我可以看到这条线,但它的内容是垃圾。

我尝试在一个小型测试应用程序中做同样的事情。它可以正常工作,唯一的区别是测试应用程序中的吸墨纸是基于 DevExpress.XtraEditors.XtraForm。对我来说,现在看起来原始吸墨纸的形式不会使某些方法过载或错过某些事件。但我无法找出究竟错过了什么。

有人能告诉我我做错了什么或不做什么吗?

谢谢。

0 投票
1 回答
10329 浏览

c# - AllowUserToAddRows doesn't work with with List<> Datasource on DataGridView

I have a DataGridView with the DataSource set to List<myClass>

However, the new row indicator does not display when I set AllowUserToAddRows to true,

When I set the DataSource to BindingList<myClass>, that seems to solve the problem.

Q: Should replace my List<> with BindingList<> or there is better solution?

0 投票
7 回答
3547 浏览

c# - 如何在将项目添加到 C# 中的集合之前触发事件?

我想在将项目添加到 BindingList 之前进行一些处理。我看到有一个 ListChanged 事件,但这是在添加项目后触发的。仅当调用 AddNew 方法(而不是 Add 方法)时才会触发 AdditionalNew 事件。有没有人做过这样的事情?

更新:

我创建了以下类,当在 IList 上调用 Add 方法时,我的新 Add 方法被触发。那么,我是否有在其他地方读到的选角问题?如果我从集合中删除了 ISpecialCollection 接口,则不会调用我的 Add 方法。有人可以解释为什么它的行为不同吗?如果我使用 ISpecialCollection< 接口,我会遇到转换问题吗?