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

vb.net - VB.NET 如何遍历一个 BindingSource

我有一个绑定到 DataTable 的 BindingSource。

我使用 BS 过滤器,并希望使用 Bindingsource 迭代 DataTable 的过滤数据集。

我知道我可以执行 MoveFirst 和 MoveNext,并且每次使用 BS.Position 都可以在基础 DataTable 中获取正确的行。但是我怎么知道集合什么时候结束呢?我敢肯定一定有这样的财产,但它是什么?

0 投票
1 回答
1401 浏览

c# - 在 bindingsource currentitem 更改事件上重新分配 textbox.text

我只是在学习 bindingsources 等。我添加了我的文本框数据绑定,如下所示:

当用户单击导航器上的下一个按钮时,我是否必须处理 bindingsource currentitem changed 事件才能说

我原以为这会是自动的,因为我有很多控件,所以看起来很乏味

0 投票
0 回答
179 浏览

c# - 将 Bindingsoure.Current 投射到 POCO

我有一个 sqldatareader,它被分配给一个 bindingsource 和一个 datagridview 数据源。

当我查看 Bindingsoure.Current 的类型时,它是 DataRecordInternal。我怎样才能将它投射到我的 POCO?

我是否必须手动计算当前对象中的哪些字段与我的 POCO 相关。我可以通过我的 POCO 做到这一点,只需使用 Grid.Cells[0]["ID"] 并以这种方式填充它,但这显然是对数据库的又一次打击。

0 投票
2 回答
2973 浏览

silverlight - 在silverlight中将文本框的DataContext设置为当前类

我在用户控件中有一个文本框,我在用户控件中创建了一个属性,我想将文本框文本属性绑定到在用户控件中创建的属性。

问题是我不知道如何将数据上下文指定为 XAML 中的当前类。

任何的想法??谢谢

0 投票
2 回答
2869 浏览

vb.net - BindingSource / BindingNavigator:如何防止编辑绑定的DataSource?

我用 VB.NET 和 Visual Studio 2005 创建了一个数据源。我将数据源拖到我的对话框上,VS 用我的链接对象 aSystem.Windows.Forms.BindingSource和 a的成员创建了文本框System.Windows.Forms.BindingNavigator

我填充了 List(称为 myList),将 myList 设置为 BindingSource 中的 DataSource,除了我希望它是只读的这一事实之外,一切都很顺利。如果用户在其中一个文本框中更改了某些内容,它会保存更改。

我尝试创建一个只读集合来绑定到 BindingSource,但这并没有解决问题:

我想我可以禁用所有的文本框,但这似乎有点笨拙,而且我可能想更改字体颜色以便更容易阅读。

理想情况下,我可能不在乎用户是否能够将焦点设置到文本框,甚至编辑内容,但我只是不希望任何更改持续存在。也就是说,如果有人编辑了某些东西,使用导航器转到下一条记录,然后返回,我希望它在用户使用它之前保持原样。

有什么建议/指导吗?

提前致谢!

0 投票
3 回答
6620 浏览

windows - Windows DataGridView BindingSource 索引超出范围异常

设想:

基本上我有一个

  • System.Windows.Forms.DataGridView

  • 继承 BindingSource 和 IBindingList 的类

  • 具有 2 个标准 List 作为私有属性的类

DataGridView dgv = 新...

MyBindingSource bindingSource = new ...

MyList 列表 = 新...

DataGridView.DataSource 属性设置为 BindingSource,BindingSource.DataSource 设置为列表的私有列表之一

bindingSource.DataSource = list.ListA;

dgv.DataSource = 绑定源;

我从数据库中获取了一堆信息流,我将信息转换为对象并一次将其添加到 MyList 中,最后应该显示在 DataGridView 中。

我希望这一切都有意义,现在问题是:将单个对象添加到列表(不是绑定源)后,我希望该项目显示在 DataGridView 中。但是我目前可以让它工作的唯一方法是构造一个 bindingSource 的另一个实例,附加了 1 个新对象,并将 DataGridView.DataSource 设置为新的 bindingSource。这当然是非常低效的,并且datagridview每次都必须使整个事情无效,这是狡猾的。

相反,我希望 List 通知 BindingSource,它告诉 DataGridView 添加了一个新对象,这样它就可以做到这一点。我试过这个,但我一直收到一个 IndexOutOfrange 异常,说“索引 -1 的项目没有值”。我查看了 BindingSource,确实位置是 -1,并且 Current 属性抛出了同样的异常。当我每次位置和当前属性正确时创建新的 BindingSource 时。

那么,当我将项目添加到列表时,我必须做什么才能更新这些属性?我用反射器打开它,看看它的设置位置,看起来“CurrencyManager”与它有关。我尝试了一些类似 base.OnDataMemberChanged base.OnListChanged 的​​方法无济于事。

编辑:忘了提我只有在点击数据网格视图中的一行时才会出现异常,它会很好地添加项目。所以这就像 DataGridView 与 BindingSource 不同步

0 投票
6 回答
14644 浏览

c# - 我的绑定源能否告诉我是否发生了变化?

我有一个BindingSource我在winforms数据绑定中使用的,当用户在对数据进行更改后尝试关闭表单时,我想有某种提示。一种“您确定要退出而不保存更改吗?”

我知道我可以通过BindingSource'CurrencyManager.ItemChanged事件通过翻转“已更改”布尔值来做到这一点。

但是,我想要一个更强大的功能。 我想知道当前数据何时与原始数据不同。 该事件只是告诉我是否发生了变化。用户仍然可以更改属性,点击撤消,我仍然认为要保存的数据发生了变化。

我想模仿记事本的类似功能

  • 打开记事本
  • 输入一些东西
  • 删除所有内容(基本上撤消你所做的)
  • 关闭记事本,记事本关闭,没有提示保存更改,因为它知道结束状态 == 初始状态

如果这是不可能的,那么我应该使用ItemChanged上面概述的事件处理程序还是有更好的方法?

为了记录,我正在寻找类似的东西

不是这个

我宁愿不必自己管理当前状态和初始状态,我正在寻找一种方法从BindingSource 如果我可以从更理想的方式获得此功能,BindingSource因为我将能够使用许多不同数据源的功能,无论类型如何等。

0 投票
1 回答
10852 浏览

c# - BindingSource 中的 Find() 帮助

我用它在我的 DataGridView 中查找值:

但我有两个问题。首先,当我查找 dgv 中不存在的项目时,位置返回 0,默认情况下是第一行。我不希望这样,如果我使用 If 语句进行验证,我将失去位置 0,从而失去第一行。

其次是我希望行标题被关注并且找到的项目被突出显示。这怎么可能?

0 投票
1 回答
1201 浏览

wpf - WPF IsReadOnly 属性绑定

有什么方法可以将一些数据上下文的属性值绑定到 IsReadOnly 属性?

例如:

或者我应该创建一个 DataTrigger?

0 投票
2 回答
4517 浏览

vb.net - DataBinding:当 SelectedValue 更改时,ComboBox.Text 不更新?

我有 aProbationComboBox绑定SelectedValue到 a RegistrationBindingSource,并且DisplayMember绑定到 a ProbationBindingSource

当我调用RegistrationBindingSource.ResetCurrentItem()时,SelectedValue属性会使用 中的正确值进行刷新RegistrationBindingSource.ProbationID(),但Text不会更新属性。

以下是我在 ComboBox 上设置数据绑定的方法:

在我找出绑定的问题之前,我将其用作临时修复:

有任何想法吗?谢谢!