关键是这部分,这里的局部变量user会随代码,值发生改变吗(实际上我没有过多数据的treeview,要不可以在调试时候看)
tmp = tmp && ChildrenCheckStatus(user);
                    tmp=tmp&&ParentCheckStatus(user);
                    MonitorButton.IsEnabled = tmp;

解决方案 »

  1.   

    一个软件设计,固然可以用接口来规范,例如你可以规定 item 必须符合某个接口,然后从接口定义的数据方法里获取数据,而不是 DataContext。但是不管用什么方法,其实技术不重要,管理才重要。光搞全面的所谓技术“规范”,仍然会深陷软件危机中。所以最近10几年会有新的、放弃过度规范、强调每隔十几分钟就要测试一次的各种敏捷开发工程方法。通过测试驱动开发方法,可以确保即使是缺乏编码类型规范的 DataContext 符合软件当初的业务规范。而并不是开发人员随意解读 DataContext,然后只是到各项目后期进行所谓的“代码合并”时才测试这些规范。
      

  2.   

    再次强调,软件编码要以简单为好。要用测试来保证质量,而不是用所谓的“规范”。所以你不要吓自己。这个 item.DataContext 代码思路不算什么问题,几乎可以忽略不计。