繁体   English   中英

主窗口DataContext StackOverflowException

[英]Main Window DataContext StackOverflowException

我知道这听起来很疯狂,但是出于我的理解,您如何解释将Window.DataContext设置为MainWindow导致此错误:

“引发了类型为'System.StackOverflowException'的异常。”

<Window>
  <Window.DataContext>
    <local:MainWindow />
  </Window.DataContext>
</Window>

初始化窗口时,XAML会膨胀为真实对象。 这些真实对象的构造函数称为,将其初始化。

该行实际上创建了MainWindow实例,而不是返回现有实例:

<local:MainWindow />

因此,您的XAML创建了一个新窗口,该窗口将DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,并将其DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,将其DataContext设置为新窗口,该窗口将其DataContext到新窗口,这会将其DataContext设置到新窗口,

等等,直到整个事情崩溃和燃烧。

大概意思做的,是这样的:

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">
</Window>

DataContext设置为窗口的当前实例 ,而不是新窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM