InitializeComponent System.StackOverflowException
2014-02-25 13:37
253 查看
因为一直重复调用了InitializeComponent,WPF报System.StackOverflowException错误,提示死循环似的调用。经过一阵排查得出下面结论:
这样在MenuData类的初始化函数里就不能再加上InitializeComponent 函数了,加上就报循环调用了。不加上可以运行程序但是在关闭该程序后,后台进程却一直处于运行中,必须启用进程管理器强行结束进程,另外就是其他窗口调用其构造函数并显示时会显示空窗口。
那怎么解决这个问题?
解决的方法就是把CreateMenu这个方法放到其他的类中。然后用ObjectDataProvider来调用。这样就不会上述问题。
避免在隐藏代码中使用ObjectDataProvider 来调用该类自己的方法
小猪就是犯了这么个错误:在MenuData.xaml.cs里调用其静态方法来创建目录数据<ObjectDataProvider ObjectType="{x:Type editor:MenuData}" MethodName="CreateMenu" />
这样在MenuData类的初始化函数里就不能再加上InitializeComponent 函数了,加上就报循环调用了。不加上可以运行程序但是在关闭该程序后,后台进程却一直处于运行中,必须启用进程管理器强行结束进程,另外就是其他窗口调用其构造函数并显示时会显示空窗口。
那怎么解决这个问题?
解决的方法就是把CreateMenu这个方法放到其他的类中。然后用ObjectDataProvider来调用。这样就不会上述问题。
相关文章推荐
- TOJ 2674 Java Vs C++ 字符串处理
- Exemplar-SVMs for Object Detection and Beyond—Overview(一)
- 如何用“友好”的方式告诉经理:拥有一个好程序员是你的幸运?
- url传中文乱码
- 如何解决jersey框架中以json格式返回数组,当数组中元素一个时json格式不对
- 遇见了一位好老师
- P次方数-c#求解-英雄会在线编程题目
- java web之Filter详解
- ECSHOP配送插件运费规则
- Spring目录
- 企业用户邮件营销方案注意事项
- ubuntu 12.04搭建LAMP碰到碰到:Unable to locate package update
- Monkeyrunner测试1——Monkeyrunner的使用
- 20款最为知名的开源PHP CMS
- 高性能、高可用的分布式架构体系
- Windows7搭建FTP服务器要点
- java(22) - 异常详解
- Android ListView开发技巧
- 编程语言排行榜
- Radmin密码破解新招