问题标签 [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.
c# - 实现绑定列表
我正在尝试了解有关 BindingList 的更多信息,因为我相信它将帮助我完成我正在从事的项目。
目前,我有一个对象类 (ScannedImage),它是一个类 (HashedImage) 的子类型,它是本机 .Net 对象 (Image) 的子类型。我没有理由不能将这两种亚型一起移动。我只是对我之前构建的一个对象进行子类型化,但我现在将我的 ScannedImage 对象存储在一个 RDB 中(嗯,技术上不是 - 只有细节,可能还有缩略图)。
此外,对象类的成员类型是我自己的自定义类型(关键字)。我正在使用自定义数据网格视图来呈现这些对象,但我正在使用我自己的代码处理对 ScannedImage 对象的所有更改。正如您可能想象的那样,我有很多事件要处理,这些事件发生在这些基本类型中。
那么,如果我更改我的对象以实现 INotifyPropertyChanged,对象集合(实现 BindingList)是否会收到 ScannedImage 对象更改的通知?
此外,如果关键字要实现 INotifyPropertyChanged,BindingList 是否可以通过 ScannedImage 对象访问更改?
抱歉,如果这看起来很新奇。我最近才发现 BindingList 并且没有接受过 C# 编程方面的正式培训——我很难继续前进。
另外,如果有人有任何好的参考资料,我会感谢链接。显然,我已经阅读了 MSDN Library。我在网上找到了一些不错的链接,但似乎很多人现在都在使用 WPF 和 ObservableCollection。
我的项目基于 Winforms 和 .Net3.5 框架。
TIA
.net - DataGridView 和绑定列表事件
我有一个带有绑定列表类型数据源的 datagridview。
我了解当 datagridview 更改时,这将更新绑定列表中的项目。
我也知道,如果 bindinglist 中的对象实现 Inotifypropertychanged 那么如果对象在网格之外发生更改,那么对象将通知 bindlist 然后通知 datagrid
我的问题是:
如果数据网格视图更改了对象,我希望绑定列表或更改的对象触发一个事件,该事件允许我将对象传递给 WCF 服务,该服务将在数据访问层端持久保存对象,例如 Service.Save(ChangedObject)
我该怎么做呢?
c# - 工作线程添加到BindingList时的跨线程操作异常
我有一个工作线程需要将项目添加到BindingList
. 但是,BindingList
是数据绑定到DataGridView
. 所以,当我尝试添加到列表中时,我得到一个InvalidOperationException (Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on.)
通常对于这个例外,你会这样做:
但是,数据绑定使事情变得混乱,因为看不到 Winform 控件。我所拥有的只是以下行,它引发了异常:
如果您有专门针对这种情况的解决方案,那就太好了。
如果不是,我如何让工作线程告诉我的主线程执行特定方法(使用工作线程提供的几个参数)?这可能是一个更可取的选择,因为我的工作线程目前实际上正在做很多事情(比如写入数据库),而且我不确定一切是否都是线程安全的。我是一名学生,刚接触多线程,这还不是我的强项。
.net - 从后台线程更新 BindingList<>?
我想知道如何使用 WPF 中的 Dispatcher 从另一个线程安全地更新我的 BindingList 集合?
我也愿意接受其他解决方案,
非常感谢,凯夫
vb.net - using Bindinglist as bind for Textbox
I have a bindinglist. i am using a textbox to show its items
I added items this way
I am binding the first property to a textbox
It shows "alpha0" in the form which is first item in the xbind Now how do I display the second item in textbox1 when i click "MoveNext" button ?
c# - 自排序列表框
完全被看似简单的事情难住了,已经被做死了……但仍然难住了。
我想要做什么:我有一个 WinForms 列表框。它的项目由对象填充,DisplayMember 已设置。随着应用程序的运行,列出的项目中的数据可能会发生变化,包括 DisplayMember 后面的字段。我希望在发生这种情况时更改 ListBox 中显示的文本,并且我还希望 ListBox 重新排序,以便项目保持字母顺序。
当数据发生变化时,BindingList 可以很好地更新显示的文本,但对于我来说,我无法对其进行排序。
我审查了这个:http: //msdn.microsoft.com/en-us/library/ms993236.aspx
加上这里有很多关于如何做到这一点的线程,但似乎没有一个适用于 ListBox。
在 ListBox 上设置 Sorted 属性同样没有帮助。
我需要做什么才能让 ListBox 自行排序?
vb.net - 为什么 BindingList(Of T) 没有 AddRange 成员?
我认为标题几乎抓住了我的问题,但有一点背景:
当我加载一个表单时,它会将几千个(30k 奇数)对象添加到绑定列表中。当我的应用程序第一次加载时,它需要几秒钟(大约 10 秒左右的内存)才能循环遍历对象列表并使用 add 函数将其添加到 BindingSource 中。但是,当这种情况发生在具有相同加载代码的后续表单上时,只需一两秒钟。
所以我的查询是:
1. 为什么 BindingList(Of T) 没有 AddRange 成员?
2. 使用 AddRange 函数会更快地进行初始和后续添加吗?
3. 任何想法为什么一个版本的代码比相同版本运行得慢?
感谢您提供的任何帮助。
.net - 绑定列表DataGridView 的数据源
我有一个 BindingList,我想将它用于 DataGrid 视图上的数据源。
我将 dataGridView1 和按钮 1 添加到表单中。当我按下按钮时,dataGridView 上没有显示任何内容。如果我使用 DataTable 作为数据源,它可以正常工作。我一定错过了一些简单的东西。
c# - 仅当 BindingList 中的新 else 更新时才插入
嗨,我有一个包含产品的自定义 BindingList,其中包含以下信息
我如何才能做到以下几点。
该列表应包含 2 个产品
所以它有点像购物车
我正在查看 AdditionalNew 事件并覆盖 void InsertItem(int index, T item)
但我真的需要一点帮助才能开始
c# - 添加到 DataSource 时 ListBox 抛出 ArgumentOutOfRangeException
我正在尝试在 C# WinFormsBindingList
中将 aDataSource
用作 a ListBox
,但是每当我尝试向 中添加项目时BindingList
,我都会ArgumentOutOfRangeException
被抛出。以下代码演示了该问题(假设表单带有ListBox listBox1
):
请注意,如果其中dataSource
已经有项目,我不会得到异常:
DataSource
我可以通过在添加项目之前将属性设置为null
,然后重新设置来解决这个问题DataSource
,但这感觉就像一个黑客,我希望能够避免这样做。
是否有一种(非黑客)方法可以DataSource
在 a 上使用空ListBox
,以便向其中添加项目不会引发异常?
编辑:堆栈跟踪:
System.Windows.Forms.dll!System.Windows.Forms.ListBox.SelectedIndex.set(int value) + 0x1ec bytes
System.Windows.Forms.dll!System.Windows.Forms.ListControl.DataManager_PositionChanged(object sender, System.EventArgs e) + 0x2e 字节 System.Windows.Forms.dll
!System.Windows.Forms.CurrencyManager.OnPositionChanged(System.EventArgs e) + 0x39 字节
System.Windows.Forms.dll!System.Windows.Forms.CurrencyManager.ChangeRecordState(int newPosition, bool 验证, bool endCurrentEdit, bool firePositionChange, bool pullData) + 0x14f 字节
System.Windows.Forms.dll!System.Windows.Forms.CurrencyManager.List_ListChanged(object sender, System.ComponentModel.ListChangedEventArgs e) + 0x2e4 字节
System.dll!System.ComponentModel.BindingList.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x17 字节
System.dll!System.ComponentModel.BindingList.FireListChanged(System.ComponentModel.ListChangedType type, int index) + 0x35 字节
System.dll !System.ComponentModel.BindingList.InsertItem(int index, System._Canon item) + 0x3f bytes
mscorlib.dll!System.Collections.ObjectModel.Collection.Add( System._Canon item) + 0x76 bytes