winform程序中对象绑定自动删除的现象

本文讨论了一个在WinForm页面中遇到的问题:当树形结构的选择改变并返回时,子列表显示为空。通过分析发现原因在于使用了datasource.clear()方法导致数据被误清除。提供了避免该问题的解决方案。

今天编写一个winform的页面,遇到一个很纠结的问题,页面样式如下:

 

左边是一个一览,绑定一个对象数据源;右边是对应的子列表,绑定的是左边树形结构节点的子列表对象数据源

问题描述:我左边的树形结构选择改变的时候,再选择回来后发现子列表为空白了,跟踪测试发现,当我当前选择项改变时,子列表里面的数据被清空

这个问题让我头疼了一个下午,最终我发现问题出在datasource.clear()这个问题上,也就是当前的子对象还在当前需要保存的对象集合中,而我用了clear()方法,就是将子数据全部标注了delete()标记;要慎用

注:我之前也经常在数据源变更的时候使用datasource.clear()的方法,但是如果当前这个对象还在被保存的父级对象之内,那么就不能用这个方法。当然如果当前的父级对象被改变了,那么还是可以用clear()方法的

如果是之前说的情况,即临时改变数据源还在保存范围以内,则可以用.datasource=null方法来代替

 

转载于:https://www.cnblogs.com/zhuxiaohui/archive/2012/11/06/2757444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值