zoukankan      html  css  js  c++  java
  • InitializeComponent System.StackOverflowException

    因为一直重复调用了InitializeComponent,WPF报System.StackOverflowException错误,提示死循环似的调用。经过一阵排查得出下面结论:

    避免在隐藏代码中使用ObjectDataProvider 来调用该类自己的方法

    小猪就是犯了这么个错误:在MenuData.xaml.cs里调用其静态方法来创建目录数据

    <ObjectDataProvider 
        ObjectType="{x:Type editor:MenuData}"
        MethodName="CreateMenu"
    />

    这样在MenuData类的初始化函数里就不能再加上InitializeComponent 函数了,加上就报循环调用了。不加上可以运行程序但是在关闭该程序后,后台进程却一直处于运行中,必须启用进程管理器强行结束进程,另外就是其他窗口调用其构造函数并显示时会显示空窗口。

    那怎么解决这个问题?

    解决的方法就是把CreateMenu这个方法放到其他的类中。然后用ObjectDataProvider来调用。这样就不会上述问题。

  • 相关阅读:
    HTML th nowrap 属性
    C 语言实例 – 判断闰年
    Java MySQL 连接
    Linux shapecfg命令
    C 简介
    Java 之 HashSet 集合
    Java 之 Set 接口
    Java 之 LinkedList 集合
    Java 之 List 接口
    JavaScript 之 事件(详解)
  • 原文地址:https://www.cnblogs.com/smallerpig/p/3646220.html
Copyright © 2011-2022 走看看