2010-08-04 3 views
1

Silverlight 4에서 충돌이 발생합니다. 저스트 - 인 - 타임 디버거는 말한다 :Silverlight 4 ManagedRuntimeError 4004 목록 스크롤 이미지 XamlParseException

An unhandled exception ('Unhandled Error in Silverlight Application') 

Code: 4004 

Category: ManagedRuntimeError 

Message: System.Windows.Markup.XamlparseException: [Line: 0 Position: 0] 

내가 20 (정도) 항목의 컬렉션에 목록 상자를 바인딩합니다. 컬렉션이 잘로드되어 올바르게 바인딩됩니다. 그러나 컬렉션의 맨 아래로 스크롤 한 다음 실버 라이트 충돌을 다시 스크롤하려고합니다.

오류는 내 Item Template 내에 contentcontrol, contentpresenter 또는 이미지 컨트롤을 포함하는 경우에만 발생합니다. 예를 들어 'InnerBorder'높이를 100으로 설정하고 콘텐츠 컨트롤을 제거하면 Silverlight가 중단되지 않습니다. 또한 {Binding Visual}은 항목의보기 모델에 정의 된 이미지입니다.

여기 내 코드입니다.

<Border HorizontalAlignment="Left" 
      Margin="2" 
      Padding="0"> 
     <Controls:Expander ExpandDirection="Right" 
          Header="Templates">     
      <ListBox UseLayoutRounding="False" 
        SelectedItem="{Binding SelectedTemplate, Mode=TwoWay}" 
        Margin="4" 
        ItemsSource="{Binding Templates}" 
        ScrollViewer.VerticalScrollBarVisibility="Visible" 
        Width="250"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <Border Style="{StaticResource InnerBorder}" 
           Width="200" 
           Margin="4"> 
          <ToolTipService.ToolTip> 
           <ToolTip Content="{Binding Description}" /> 
          </ToolTipService.ToolTip> 
          <StackPanel Orientation="Vertical" 
             VerticalAlignment="Center" 
             HorizontalAlignment="Center"> 

           <ContentControl Content="{Binding Visual}" 
               MaxWidth="100" /> 

           <TextBlock Text="{Binding Name}" 
              HorizontalAlignment="Center" /> 
          </StackPanel> 
         </Border> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
     </Controls:Expander> 

Im 완전히 손실되었습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+1

해결책을 해킹했습니다. 목록 상자의 스크롤 뷰어를 비활성화 한 다음 독립 스크롤 뷰어에서 목록 상자를 감 쌌습니다. 문제는 ItemsControllGenerator에 문제가 있음을 나타냅니다. 특히, 목록 상자가 내 콘텐츠를 가상화하려고 시도 할 때 문제가 발생합니다. – Torak

+0

답변으로 게시해야합니다. 해킹/해결 방법 일 수 있지만 그게 전부라면 그만한 가치가 있습니다. (나는 또한 충돌을 일으키는 스크롤 문제가있다 - 당신은 실버 라이트 툴킷을 사용 하는가?) –

+0

자, 여러분. 그것은 효과가있을 수 있습니다. 그러나 ListBox에서 ~ 1000 요소는 무엇입니까? – Monochromie

답변

1

나는이 같은 문제를 안고있었습니다. 나는 그것을 ToolTipService까지 추적 할 수 있었다. 툴팁이 표시되는 동안 스크롤하면 충돌이 발생합니다 (일부 항목에만 해당). 툴팁 바인딩을 제거하면이 문제가 해결됩니다.

아직 툴팁을 표시 할 수 있도록 해당 문제를 해결하지는 않았지만 적어도 충돌을 제거 할 수 있습니다.

업데이트
문제를 해결하고 툴팁을 계속 관리 할 수있었습니다. 너처럼 필자는 툴팁 내용을 텍스트로 직접 설정하고 있었다. 대신 실제로 내용을 TextBlock이 포함 된 StackPanel으로 설정했으며이 텍스트에는 텍스트가 포함되어 있으며 이제는 충돌하지 않고 작동합니다. 불행히도 이것이 왜 작동하는지 나는 완전히 모르겠습니다.

관련 문제