데이터 바인딩을 이해하려고 시도하고 있는데 이는 완전히 신참 오류처럼 보입니다. 그러나 왜 그런 일이 벌어지고 있는지 전혀 알 수 없습니다.바인딩 할 때 InitializeComponent가 StackOverflow 예외를 발생시킵니다.
CS
namespace MuhProgram
{
public partial class MainWindow : Window
{
public string foobar
{
get { return "loremipsum"; }
}
public MainWindow()
{
InitializeComponent();
}
}
}
XAML :있는 StackOverflowException와 MainWindow()
방법 InitializeComponent()
전화에서
<Window x:Class="MuhProgram.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MuhProgram"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:MainWindow x:Key="classMainWindow"/>
</Window.Resources>
<Grid>
<Label Content="{Binding Source={StaticResource classMainWindow}, Path=foobar}"></Label>
</Grid>
</Window>
디버거를 가리 킵니다.
DataContext
속성을 그리드에서 "{StaticResource classMainWindow}"
으로 설정했지만 효과가 동일합니다. 재귀이 줄
<local:MainWindow x:Key="classMainWindow"/>
에서 MainWindow를의 인스턴스를 생성하기 때문에
"MainWindow의 다른 인스턴스 선언"이란 무엇을 의미합니까? 내가 어디에서 그런거야? –
다른 인스턴스 ' '를 선언하고 있습니다. –
왜 스택 오버플로가 발생합니까? 그 사람 [여기] (http://msdn.microsoft.com/en-us/library/ms752347(v=vs.110) .aspx)도 동일한 작업을 수행하고 있습니다 (첫 번째 XAML 코드 조각). –