2

Silverlight 4 がクラッシュします。Just-In-Time Debugger は次のように述べています。

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>

私は完全に失われました。どんな助けでも大歓迎です。

4

1 に答える 1

2

私はこの同じ問題を抱えていました。まで追跡することができましたToolTipService。ツールチップが表示されているときにスクロールすると、クラッシュが発生します (一部の項目のみ)。ツールチップのバインドを削除すると、この問題はなくなります。

ツールチップを表示できるようにまだその問題を解決していませんが、少なくともクラッシュを取り除くことはできます。

更新
問題を解決し、ツールチップを機能させ続けることができました。あなたと同じように、ツールチップのコンテンツをテキストに直接設定していました。代わりに、実際にコンテンツを をStackPanel含むに設定しTextBlock、テキストを含むようにすると、クラッシュすることなく動作するようになりました。残念ながら、これが機能する理由は完全にはわかりません。

于 2011-04-26T14:47:03.610 に答える