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

.net - 有没有人写过一个线程安全的 BindingList?

我目前在多个线程上修改 IBindingList 时遇到异常。在我自己编写之前,有人有线程安全版本吗?

0 投票
6 回答
28442 浏览

.net - DataGridView 排序和例如 BindingList在 .NET 中

BindingList<T>在我的 Windows 窗体中使用了一个包含“ IComparable<Contact>”联系人对象的列表。现在我希望用户能够按网格中显示的任何列进行排序。

MSDN online 上描述了一种方法,它显示了如何实现基于BindingList<T>允许排序的自定义集合。但是,是不是有一个排序事件或可以在 DataGridView(或者更好的是,在 BindingSource 上)中捕获的东西来使用自定义代码对基础集合进行排序?

我不太喜欢 MSDN 描述的方式。另一种方法是我可以轻松地将 LINQ 查询应用于集合。

0 投票
3 回答
10392 浏览

c# - Get the Enum value Description

I have my enumHelper class that contains these:

and

my enum is something like:

So far so good. All the previous work fine. Now I want to add a new helper to return BindingList>, so I can link any enum to any combo using

For that I added:

But "Enum.Description(value)" is not even compiling: Argument '1': cannot convert from 'T' to 'System.Enum'

How can I do that? Is that even possible?

Thank you.

0 投票
1 回答
2609 浏览

c# - DatagridView + 自定义对象绑定

我在 .NET 3.5 中有一个 datagridview 需要显示以下列:

ID,姓名,ID2,姓名2

此 datagridview 绑定如下:

问题是 ID2 和 Name2 在 datagridview 中没有显示任何值。我在设计时在 Datagridview 中创建了列,对应于 ID2 和 Name2 的列已被分配数据属性为:Class2Ref.ID2 和 Class2Ref.Name2

看,在 UI 端,ID2 和 Name2 是 Class1 还是 Class2 的属性对用户来说并不重要,但在实体设计级别,它确实有所作为。请告诉我如何在 Datagrid 中显示 2 个属性,这些属性不能直接在类中使用,而是通过参考。

0 投票
3 回答
17355 浏览

winforms - ObservableCollection(Of T) vs BindingList(Of T)?

在过去的两年里,我开发了一些基于数据的 Winforms 应用程序,一切正常。此应用程序建立在层(数据访问、业务逻辑和 UI)之上。对于业务逻辑,我的所有对象都继承自一个名为 BaseEntity 的基类,其定义如下(有一些自定义对象和接口,结合框架元素):

在同一个核心库中,我有一个通用基础集合 BaseEntityCollection。这些集合允许我为每个对象定义他相关的强类型集合,这在基于数据的应用程序中非常有趣。这是它的基本定义:

如您所见,我使用了 Winforms 中正确数据绑定所需的所有内容:

  • 对象的 INotifyPropertyChanged、INotifyPropertyChanging、IEditableObject。
  • 我的收藏基于 BindingList(Of T) 的收藏。

我对新技术也很感兴趣,所以我最近看了一些关于 WPF 的网络广播。在这些网络广播中,它们用作收集和数据绑定支持 ObservableCollection(Of T) 的基类。

我正在考虑将我的一些应用程序从 Winforms 迁移到 UI 层的 WPF。

我的问题是,对于我的业务逻辑,是更好地保留基于 BindingList(Of T) 的集合还是应该更改我的基本集合类以使其继承自 ObservableCollection(Of T)。我想为我的所有项目保留一个独特的基础集合,它也可以在 Winforms 应用程序、WPF 应用程序或 ASP.NET 中使用。我还在我的项目中使用 Linq to Objects,所以我的项目仅基于框架 2.0 并不受限制。

0 投票
4 回答
10231 浏览

c# - 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

一次又一次地,我发现自己不得不编写线程安全版本的 BindingList 和 ObservableCollection,因为当绑定到 UI 时,这些控件不能从多个线程中更改。我想了解的是为什么会这样——是设计错误还是故意的?

0 投票
2 回答
6592 浏览

c# - 在 C# 中重新排序 BindingList 中的项目?

如何在 C# 的 BindingList 中移动项目?比如说,将最后添加的项目移到前面,还是与上一个项目交换?

0 投票
2 回答
2887 浏览

c# - 删除列表中的最后一项时数据绑定出现 InvalidOperationException

当我尝试删除 datagridview 中的最后一项时,我收到以下消息。

DataBinding 在列表中找不到适合所有绑定的行。

我的绑定设置如下。

ExtendedBindingList 只是我拼凑起来的一个简单的东西,用于实现排序和过滤以及一些基本的状态持久性。dgv 是 DataGridView。GetDataFromDB 返回 MyClass 的列表。

仅当我尝试使用以下方法从 datagridview 中删除最后一项时才会出现此问题:

在所有其他时间都有效。我对解决方案的唯一提示是删除所有绑定并重新应用它们,但这似乎不是一个理想的解决方案。

编辑 只有在 BindingList 成功删除最后一个有问题的项目后才会引发异常。它被抛出在外部代码中,所以我无法确切地知道是什么抛出了它。

所以,我在这里,向SO寻求帮助:)。

在此先感谢,贾斯汀

0 投票
2 回答
4447 浏览

c# - 属性更改时未引发 BindingList.ListChanged 事件

我有一个用户类型的 BindingList,用户对象有几个属性(用户名、密码等)。所以我将一个事件处理程序绑定到 BindingList.ListChanged 事件,它在添加或删除用户时工作正常,但是,如果用户属性发生变化,它不会引发事件,有没有办法实现这一点?

0 投票
1 回答
749 浏览

c# - BindingSource 的 DataDource 可以是表单上的属性和对象吗

例如:我在表单上有一个联系人对象(见下文)。我可以将 BindingSource 的数据源属性设置为属性 Contact.Addresses。

AddressCollection 类实现了 BindingList,因此当没有被 Contact 类封装时,绑定 this 没有问题。

谢谢安东尼