- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个选项卡式 WinForms 应用程序,其中包含多个绑定(bind)到 BindingSources 的 DataGridView 控件。 BindingSources 又绑定(bind)到业务对象的 BindingLists。我的业务对象实现 INotifyPropertyChanged。
我的 TabControl 有三个 TabPages(A、B 和 C)。如果我的用户更改了选项卡 A 上的 DataGridView 控件中的数据,然后尝试在不提交更改的情况下切换到选项卡 B 或 C(在这种情况下,将数据写入磁盘),我需要提示他们保存改变或丢失它们。
为了确定给定选项卡上是否进行了更改,我为每个选项卡创建了“pendingChange”变量。每个 DataGridView 控件都有自己的 CellValidating 事件处理程序,我会在用户进行更改时在其中验证数据。在该事件处理程序结束时,如果更改已通过所有验证检查,我将该选项卡的 pendingChange 变量设置为 true。当我的用户单击按钮将更改写回磁盘时,我重置了 pendingChange 变量。因此,每当我的用户尝试更改为不同的选项卡时,我都会检查此变量以确定是否有任何更改需要先保存。
现在我意识到此设计的一个大缺陷是每次单元格失去焦点时都会触发 DataGridView 控件的 CellValidating 事件。所以现在我需要找到一种不同的方法来跟踪单元格值何时被更改。 DataGridView 控件公开的另一个事件是否更适合此目的?或者 BindingList 有一个事件可以帮助我实现此功能?如果必须,我可以向我的业务对象添加一个 bool 值“已修改”属性,并根据需要更新它。如果可以避免这种情况,我想这样做,因为其中一个 BindingList 在任何给定时间都包含 150,000 个对象,并且遍历它可能不会非常快。
最佳答案
BindingSource 有 Events .例如。 CurrentChanged当当前绑定(bind)的项目改变时发生事件。
关于c# - 检测对 BindingSource/BindingList 的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255634/
我有一个事件的绑定(bind)列表,每个事件都有一个 BuyOrders 的绑定(bind)列表 bindingListActivty.Select(k => k._dataGridViewId ==
是否可以将我的类的属性名称映射到 UltraGrid 控件的列名称? MyClass 是例如一个用户类: class User { public int Id { get; set;
基本上我有一个具有以下签名的方法: public void Save(BindingList items); 我正在尝试使用 调用它 classInstance.Save(items); //item
我有一个看似简单的问题,我希望协调两个列表,以便“旧”主列表由包含更新元素的"new"列表更新。元素由键属性表示。这些是我的要求: 仅当任何属性发生更改时,任一列表中具有相同键的所有元素都会导致将"n
有没有一种简单的方法来创建一个 BindingList 包装器(带投影),它会随着原始列表的更新而更新? 例如,假设我有一个可变的数字列表,我想在 ComboBox 中将它们表示为十六进制字符串。使用
我已经填写了绑定(bind)列表 所以我想尽快清除它 所以我有至少有 2000 项的绑定(bind)列表 什么是最好的方法? 最佳答案 你应该使用: myBindingList.Clear() 如 t
将数组转换为 BindingList 的最简单和最快的方法是什么? 最佳答案 使用 BindingList采用 IList 的构造函数. var binding = new BindingList(m
我一直在尝试寻找问题的可能原因,但似乎找不到: 错误: System.NotSupportedException: Collection is read-only. at System.ThrowHe
我不明白如何克隆 BindingList . 我想创建一个不共享相同引用的现有列表的新副本。另一个复杂情况是我的对象本身包含一个嵌套的 BindingList . 我尝试了构造函数方法: Bindin
myGenericList.RemoveAll(x => (x.StudentName == "bad student")); 效果很好,但绑定(bind)列表没有此方法。如何为绑定(bind)列表创
我的类有一个 BindingList,我想在其中使用它的属性填充 ComboBox,这样当我的列表更改时,ComboBox 也会更改。 public class UserAccess { pu
复制 BindingList 的最佳方法是什么? 只使用 ForEach()?或者有更好的方法吗? 最佳答案 BindingList 有一个可以接受 IList 的构造函数。而 BindingList
我正在尝试了解更多有关 BindingList 的信息,因为我相信它会对我正在进行的项目有所帮助。 目前,我有一个对象类 (ScannedImage),它是类 (HashedImage) 的子类型,该
我有一个绑定(bind)到 BindingList 的 DevExpress GridControl。我使用了 BindingList,以便更改自动应用到绑定(bind)控件。 当我从列表中添加或删除
我有一个 C# WinForms 应用程序,其中包含一个 BindingList,其中填充了像这样的小部件对象: BindingList widgetsList = new BindingList()
有没有办法强制 BindingList 排序(在单元测试中)?根据documentation ,方法 ApplySortCore 被标记为 protected ,但绑定(bind)控件必须通过某种方式
我正在使用 BindingList填充一些控件。 在表单的一部分,我需要使用存储在 BindingList 中的一些数据创建和排列。假设我有 BindingList并想检索所有 CEmployee.S
BindingList有没有去除重复元素的方案?我试过: BindingList accounts = new BindingList(); accounts.add(new Account("u
刚学C#/.NET就遇到了这个问题。 所以在我的解决方案中,我有 2 个项目:winforms UI 和带有逻辑的 dll。在 dll 中,我有 BindingList,它为 UI 中的列表框提供数据
我有一个异步 BindingList,其中包含在工作线程上操作并绑定(bind)到主 UI 线程上的 BindingSource 以及绑定(bind)到 DataGridView 的 BindingS
我是一名优秀的程序员,十分优秀!