2010-08-04 112 views
1

Silverlight 4崩溃了。实时调试器说:Silverlight 4 ManagedRuntimeError 4004 Listbox滚动图像XamlParseException

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

Code: 4004 

Category: ManagedRuntimeError 

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

我将一个列表框绑定到20(或左右)项目的集合。集合加载正常并且绑定正确。但是,当我滚动到集合的底部,然后尝试回滚Silverlight崩溃。

只有在我的项目模板中包含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> 

我完全失去了。任何帮助将不胜感激。

+1

我破解了一个解决方案。我禁用了列表框的滚动查看器,然后将列表框放在独立的滚动查看器中。 我的直觉告诉我问题在于ItemsControllGenerator。具体来说,当列表框试图虚拟化我的内容时,情况就会变得很糟糕。 – Torak 2010-08-04 17:31:57

+0

你应该发布这个答案 - 它可能是一个黑客/解决方法,但如果它是我们所有的,那么它是值得的。 (我也有滚动导致崩溃的问题 - 你使用Silverlight工具包吗?) – 2011-04-26 13:24:09

+0

好吧,伙计们。它可能正在工作。但是ListBox中的〜1000个元素呢? – Monochromie 2011-06-26 19:10:42

回答

1

我有这个相同的问题。我设法追踪到ToolTipService。如果我在显示工具提示时滚动,则会发生崩溃(仅在某些项目上)。如果我删除了工具提示绑定,这个问题就消失了。

我还没有解决这个问题,所以可以显示工具提示,但至少我可以删除崩溃。

更新
我设法解决问题并保持工具提示正常工作。和你一样,我直接将工具提示内容设置为一些文本。实际上,我将内容设置为包含TextBlockStackPanel,然后包含该文本,现在它可以正常工作而不会崩溃。不幸的是,我不完全确定这是为什么起作用。