使用winforms数据绑定检测脏

时间:2014-09-13 05:22:57

标签: c# winforms data-binding 2-way-object-databinding

我正在使用双向绑定winforms文本框。 如果用户更改了我的数据,我需要解决 看看帮助

the CurrentItemChanged Event

如果某个属性发生了变化,这个事件似乎会触发,但如果当前情况发生变化,它也会触发。

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

a similar question is also asked here 但在我看来没有回答

Oliver提到"如果List中的对象支持INotifyPropertyChanged事件并且您通过BindingList替换List,则可以订阅BindingList的ListChanged事件以获知用户所做的任何更改。&# 34;

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

我找到了一个链接at Microsoft here,但肯定不会那么难!

1 个答案:

答案 0 :(得分:0)

这似乎有效

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
                }
            }
        }