问题标签 [bindingsource]

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 回答
22530 浏览

c# - BindingSource 刷新

我有 2 个类,即CustomerOrderCustomer有一个订单集合的引用。我使用 master detail BindingSources。

我的问题是当我对订单使用延迟加载模式时,我的详细信息BindingSource没有更新。

用户界面

所以在我的datagridView1点击事件中

我很感激这方面的任何帮助。

0 投票
2 回答
1040 浏览

.net - 为什么 BindingSource 组件看不到继承的属性?

我已经定义了类:

当我尝试将控件绑定到 IChild 实例时,我可以对 ChildText 属性执行此操作,但不能对 ParentText 属性执行此操作。如果我尝试绑定到 Child 实例,这两个属性都是可绑定的。为什么数据绑定机制看不到从其他接口继承的属性?

编辑:SharePoint 新手是对的:数据绑定在代码中手动定义时起作用。但是,我尝试使用 BindingSource 组件在设计器中定义数据绑定。当您将对象源添加到项目并将其指向 IChild 接口时,只有 ChildText 可见以定义绑定。

我更新了问题的标题以更好地反映我的问题。

0 投票
0 回答
599 浏览

c# - .Net DataGridViews 绑定到不同标签页中的相同绑定源

我有一个带有选项卡控件的 winform (C# VS2008 .net 3.5)。选项卡控件上的两个页面具有绑定到相同绑定源的数据网格视图。这工作正常。

但是,选项卡页存在一个错误,即选项卡页中的数据网格视图始终显示绑定表的第一列,无论它在设计时是否设置为可见。

要解决此问题,您只需手动将 column.visible 属性设置为 false。当我只有一个 DGV 绑定到 BindingSource 时,这很好用。随着两人的束缚,一些奇怪的事情发生了。我手动将 DGV 的第一列都设置为可见 = false,但有时实际上只有一个列,而该列仍然显示在另一列中。此外,当单击 DGV 中显示第一列的记录时,会引发以下异常:

InvalidOperationException - 操作无效,因为它会导致对 SetCurrentCellAddressCore 函数的可重入调用。

有没有其他人遇到过这种情况或对标签页的列 [0] 问题有更好的解决方案?

0 投票
1 回答
117 浏览

c# - 将 DisplayValue 绑定到与控件的 DataSource 不同的源

假设我有任务和员工,每个人在数据库中都有各自的表。它们之间会有多对多的关系,因此会有第三个分配表。

如果我创建一个绑定到 AssignmentsBindingSource 的列表框,我没有要显示的员工姓名。有没有办法从第二个绑定源获取它并在同一个控件中使用它?

我目前正在绑定到一个视图来完成此操作,但是当一个员工被分配到一个任务时,视图将不会更新信息,直到将编辑提交到数据库并重新填充。

0 投票
1 回答
4339 浏览

c# - 撤消自 BindingSource 的最后一次 EndEdit 调用以来的所有更改

这是场景(它使用绑定到 DataSet 中的 DataTable 的 BindingSource):

  1. 用户创建一个新的通讯录联系人,在数据绑定控件中填写名字和姓氏。
  2. 他按下 Apply,其事件处理程序调用 BindingSource.EndEdit()。
  3. 然后他意识到有一个错误,并添加了一个电子邮件地址。
  4. 但是当他按下 Apply 时,验证失败(无效的电子邮件格式),因此不会调用 EndEdit()。
  5. 他决定不进行编辑,并按下取消按钮,其事件处理程序调用 BindingSource.CancelEdit()。
  6. 但是,BindingSource 并没有恢复到只有名字和姓氏而没有电子邮件的新联系人,而是摆脱了整个记录。

自上次调用 EndEdit() 以来,有什么方法可以仅撤消操作?我的印象是 CancelEdit() 应该如何工作。

0 投票
2 回答
7586 浏览

c# - 数据表和绑定源

我试图了解以下两个示例之间的区别。

首先,这是我目前将数据分配给我的 WinForm 应用程序中的控件的方式。

这似乎可行,但我承认,如果它稍微偏离,我可能缺乏仅通过查看代码来判断的经验。另外值得注意的是,Person.CountyList()实际上返回一个DataTable:\

现在我发现的所有例子似乎都在说我应该这样做。

使用 BindingSource 有什么好处吗?以其他方式进行是否有负面影响?

对于上下文,这是使用 SQL 2005 的 C# 中的 WinForm CRUD 应用程序。

0 投票
1 回答
1101 浏览

linq-to-sql - WinForms 中的 BindingSource 控件 - 与 LINQ、ADO.Net 等相比?

我对 WinForms 中的数据库编程相当陌生,并且一直在使用 BindingSource、DataSet 和 TableAdapter 控件在网格和组件一图表控件中显示来自 Access 数据库的数据。

该应用程序现在相当简单 - 用户在网格中选择一行,并在 Chart 控件中绘制一组相关的数据点。

TThe BindingSource 方法起初提供了很多即时的满足感,但我现在正试图让它与 Component One Report 控件一起工作,并且已经开始遇到一些运行时错误,这些错误在我目前的知识水平上没有意义。

我开始怀疑是否值得继续走这条路,或者我是否应该从一开始就将精力投入到更强大的方法上(例如,LINQ 看起来很有前途)。

我的问题 - 与 LINQ 相比,BindingSource 方法的局限性是什么?

ADO.Net 又如何比较?

——汤姆·布谢尔

PS如果你读到这个问题,请投票,这样我至少可以获得足够的代表点来开始评论。谢谢!

0 投票
1 回答
1171 浏览

c# - 同步两个 BindingSource

我有一个带有 aDataGridView的表单,可以通过双击打开详细信息表单。
打开第二个表单时,我将其设置为使用与DataSet父表单相同的实例。我现在想确保第二个表单也指向DataRow与父级相同的表单。
起初我只是发送Position了父表单的属性,并在详细信息表单BindingSource上设置了相同的属性。BindingSource这工作得很好,直到我开始排序DataGridView- 现在父级的位置显示排序值,所有地狱都松了。
然后我尝试发送实际的DataRow甚至是DataRowView父对象的对象,并在细节上BindingSource使用该方法-但它们都只返回-1。FindBindingSource
BindingSource Current如果我不能在索引或值上中继, 我可以使用什么其他方式来设置属性?我是否必须使用该Filter方法并动态构造一个过滤器查询(我有多个 PK 属性,所以我不能只使用Find)?

0 投票
3 回答
23481 浏览

c# - .NET BindingSource 筛选器语法参考

您可以使用 BindingSource 的 Filter 属性来执行类似 SQL 的过滤。例如:

有没有关于这个确切语法的文档?

我想检查一个字段是否不是 DBNull,所以我尝试了“Field!= NULL”,但它给出了语法错误。

0 投票
0 回答
1485 浏览

c# - 一个数据源需要多个 BindingSource 组件?

根据我之前的问题,通过 .NET 中的某种接口使属性可用于数据绑定?,我在@Marc Gravell的帮助下进行了管理,通过实现接口ICustomTypeDescriptor我可以为表单设计器提供自定义属性,这些属性可能会或可能不会作为真正的普通属性在相关组件上实际可见。

我做到了这一点,但我的实施存在缺陷。我现在遇到的最大问题是,如果我在我的表单上拖放一个组件,它有两个这样的自定义属性,然后将两个文本框拖放到表单上,并使用数据绑定,属性检查器中的数据绑定下拉菜单需要一个对象数据源,但我绑定到控件的每个属性都会在表单上添加另一个BindingSource组件。

让我重新表述一下。我将自定义组件放到表单上。它有两个属性,可通过我的ICustomTypeDescriptor实现获得,但作为普通属性不可见。

然后我将两个文本框放到表单上。我去属性检查器让其中一个为 Text 属性添加数据绑定,它需要项目中的对象数据源,我添加了它。然后,在将文本框上的 Text 属性绑定到我的自定义组件的第一个属性之后,表单设计器添加了另一个组件,即“customDataBindingBindingSource”,用于桥接两者之间的数据绑定。到目前为止,一切都很好。

然后,当我以相同的方式为该其他文本框设置数据绑定时(除了我现在可以选择自定义组件的其他属性),添加了另一个这样的桥,“customDataBindingBindingSource1”。如果我不断切换要绑定的属性,则每次都会添加一个这样的桥。

这真的有必要吗?

如果不是,我在ICustomTypeDescriptor实现中做错了什么?诚然,这很天真、简单而且远未完成,但我不知道我需要解决什么问题。任何指针?

这是我的自定义类:

此外,我需要在表单构造函数中手动将这些桥连接到我最初删除的组件,如下所示:

有没有办法解决很多问题?

基本上,在使用我的组件时我想做的是:

  1. 将我的自定义组件之一拖放到表单上
  2. 删除必要的控件(文本框、日期选择器等)
  3. 将控件的数据绑定分配给我的自定义组件上的相关属性

如果可能的话,我想避免项目数据源、桥接组件以及构造函数中的代码。我想避免的一切。

请注意,我不要求任何人给我代码。欢迎任何指点。