는 다음과 같은 마크 업을 준수 해주십시오있는 StackOverflowException이 발생합니다.는
스타일은 TreeViewItem
(또는 생성 된 트리 내용의 경우 DataTemplate
)에 첨부 된 ContextMenu
의 메뉴 항목에 적용됩니다. 마우스 오른쪽 버튼을 놓으면 컨텍스트 메뉴가 열려 있기 때문에 예외가 발생합니다. ContextMenu
에 대한 사용 사례
하나는 :
<DataTemplate x:Key="TviChaptersHeaderTemplate">
<StackPanel Orientation="Horizontal" Margin="0,2,0,2">
<Image Margin="2,0,0,0" Width="16" Height="16" Source="\Icons\pages.png" />
<TextBlock Text="{Binding}" Margin="5,0" />
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Chapter"
Style="{StaticResource STYLE}" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
예외는 헤더 템플릿 내부의 <ContentPresenter />
태그에 고립되었습니다. 주석 처리하면 예외가 지워집니다. 무슨 일 이니?
스택 오버플로가 재현 될 수 있습니다. 그러나, 당신이 달성하고자하는 것은 분명하지 않습니다. 이런 식으로'ContentPresenter'를 사용하려는 이유를 설명해 주시겠습니까? –
Luke-이 예제에 표시된 HeaderTemplate은 문제를 강조 표시하기 위해 무력화되었습니다. 그러나 ContentPresenter는 실제로 프로덕션 코드의보다 복잡한 컨텐트 내에 중첩되어 있습니다. –
당신은 내 질문에 대답하지 않았습니다. * 왜 * 당신은이 방식으로'ContentPresenter '를 사용해야합니까? –