1

我正在使用带有 winforms 文本框的 2 方式绑定。我需要确定用户是否更改了我的数据查看帮助

CurrentItemChanged 事件

如果属性已更改,似乎此事件会触发,但是如果当前已更改,它也会触发。

有没有办法判断数据是否发生了变化?

这里也问了一个类似的问题, 但我认为没有回答

Oliver 提到“如果您在 List 中的对象支持 INotifyPropertyChanged 事件,并且您将 List 替换为 BindingList,您可以订阅 BindingList 的 ListChanged 事件以了解用户所做的任何更改。”

我的应用程序符合这些条件,但我无法正常工作。ListChangedType.ItemChanged 属性看起来很有希望,但是当我导航到下一条记录而不更改数据时它会发生变化

在这里找到了 Microsoft的链接,但肯定不会那么难!

4

1 回答 1

1

这似乎有效

void bindingSource_BindingComplete(object sender, BindingCompleteEventArgs e)
        {
            if (e.BindingCompleteContext == BindingCompleteContext.DataSourceUpdate)
            {
                var person = (Person)bindingSource.Current;

                if ( person.State == State.Unchanged && (e.BindingCompleteState == BindingCompleteState.Success)
                && e.Binding.Control.Focused)
                {
                    person.State = State.Modified;  // using Julie Lerman's repositories technique
                }
            }
        }
于 2014-09-13T06:29:09.693 回答