Silverlight 4 ManagedRuntimeError 4004 Listbox滚动图像XamlParseException

时间:2010-08-04 08:13:48

标签: silverlight listbox scroll xamlparseexception

Silverlight 4正在崩溃我。 Just-In-Time调试器说:

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 个答案:

答案 0 :(得分:1)

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

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

<强>更新
我设法解决了问题并保持工具提示正常工作。和你一样,我直接将工具提示内容设置为某些文本。相反,我实际上将内容设置为包含StackPanel的{​​{1}},然后包含文本,现在它可以正常运行而不会崩溃。不幸的是,我不完全确定为什么会这样。