4

ボタンをクリックすると、ListBox ItemsSourceコレクションが更新されます。DependencyObject4 回または 5 回クリックすると正常に動作しますが、その後、'[Unknown]' プロパティがパス '(0).(1)[1].(2)'を指していないため、例外がスローされます。

私はそれをグーグルで検索し、その理由を見つけました。

「ElementControl は PrepareContainerForItemOverride をオーバーライドし、PrepareModel を呼び出して各アイテムの _modelContainer にメッシュを挿入します。後で ElementFlow.BuildTargetPropertyPath (ElementFlow.SelectItemCore -> LayoutBase.SelectElement -> ElementFlow.PrepareTemplateStoryboard 経由で呼び出されます) で、そのようなメッシュがこの例外は、メッシュが _modelContainer に挿入されていない場合に発生します。WPF は、ApplyTemplate で PrepareContainerForItemOverride を呼び出します。これは 1 回だけ行われます。後で追加されたアイテムは、そのように処理されることはありません。」

だから、それを克服するための解決策を教えてください。

4

1 に答える 1

1

「 itemsource コレクション」に、適切なタイプではないアイテム、またはリストボックスのアイテム テンプレートが探しているプロパティの 1 つが含まれていないアイテムがあるようです。または、コレクションにさまざまなクラスがある場合、そのうちの 1 つが DependencyProperty として探しているプロパティを持っていない可能性があります。単なるプロパティだと正しく動作しない場合があります。

itemssource コレクションに入るすべてのオブジェクト タイプをチェックし、itemstemplate が探している名前の DependencyProperties がすべてあることを確認します。

于 2013-07-05T15:44:09.830 に答える