4

单击按钮时,更新ListBox ItemsSource集合。对于 4 或 5 次单击,它工作正常,但之后它会引发异常,因为 '[Unknown]' 属性不指向DependencyObject路径 '(0).(1)[1].(2)'

我用谷歌搜索并找到它的原因。

“ElementControl 覆盖 PrepareContainerForItemOverride 并调用 PrepareModel 将网格插入到每个项目的 _modelContainer 中。稍后在 ElementFlow.BuildTargetPropertyPath(通过 ElementFlow.SelectItemCore -> LayoutBase.SelectElement -> ElementFlow.PrepareTemplateStoryboard 调用)中假设这样的网格具有已插入 _modelContainer。当网格尚未插入 _modelContainer 时会发生此异常。WPF 在 ApplyTemplate 上调用 PrepareContainerForItemOverride。这仅执行一次。以后添加的项目永远不会像那样处理。“

所以请给我一个解决方案来克服它。

4

1 回答 1

1

看起来您的“itemsource 集合”中可能有一个不属于正确类型的项目,或者不包含您的列表框项目模板正在寻找的属性之一。或者,如果您的集合中有不同的类,其中一个可能没有您正在寻找的属性作为 DependencyProperty。如果它只是一个普通的属性,它可能无法正常工作。

检查进入 itemssource 集合的所有对象类型,并确保它们都具有 DependencyProperties,这些 DependencyProperties 被命名为 itemstemplate 正在查找的内容。

于 2013-07-05T15:44:09.830 回答