NullReference

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
OnValidation 和 OnPropertyChanged

有的时候在编辑空间里输入了数据,然后按Toolbar button保存,就会发现数据根本没有更新到绑定的数据源里,但是如果你在点button之前,先点一下其他地方转移一下焦点的话就没有问题了。怎么回事呢?

 

原来就是DataBindings里的Update Datasource这个设置,如果是默认的写法:

ctl.DataBindings.Add(new Binding("Text", this.bindingSource, "PropertyName", true));
这样默认的是在Validated后才会更改数据源,而Validation事件却是会在LostFocus后才触发的,所以就会出现上面的情况。

怎么处理呢? 

ctl.DataBindings.Add(new Binding("Text", this.bindingSource, "PropertyName", true, DataSourceUpdateMode.OnPropertyChanged));

像上面那样就可以了。一更改立即触发。当然,这个属性最好用到Dropdown类似的地方里,确保输入更改不会产生错误。

 

posted on 2010-01-14 11:46  NullReference  阅读(2860)  评论(0编辑  收藏  举报