我正在使用双向绑定winforms文本框。 如果用户更改了我的数据,我需要解决 看看帮助
如果某个属性发生了变化,这个事件似乎会触发,但如果当前情况发生变化,它也会触发。
有没有办法判断数据是否有变化?
a similar question is also asked here 但在我看来没有回答
Oliver提到"如果List中的对象支持INotifyPropertyChanged事件并且您通过BindingList替换List,则可以订阅BindingList的ListChanged事件以获知用户所做的任何更改。&# 34;
我的申请符合这些条件,但我无法正常工作。 ListChangedType.ItemChanged属性看起来很有希望,但是当我导航到下一条记录而不更改数据时它会改变
我找到了一个链接at Microsoft here,但肯定不会那么难!
答案 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
}
}
}