1

我正在使用一个包含ListBox. 列表框可以显示“图标”和“列表”视图。为了实现这一点,我们使用 ListBoxItem了动态应用于 的样式,ListBox以及一对对应ItemsPanelTemplate的 s。照原样,它显示得很漂亮。但是,在加载此对话框时,我们会遇到几十个绑定错误,例如:

System.Windows.Data 错误:4:找不到与引用'RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1''的绑定源。绑定表达式:路径=垂直内容对齐;数据项=空;目标元素是'ListBoxItem'(名称='');目标属性是“VerticalContentAlignment”(类型“VerticalAlignment”)

我们的理论是样式和模板在 之前加载ListBox,并且无法使用以下代码找到它们绑定的属性:

<Setter Property="VerticalContentAlignment" Value="{Binding 
        Path=VerticalContentAlignment, RelativeSource={RelativeSource 
        AncestorType={x:Type ItemsControl}}}"/> 

ListBox这似乎在初始化和应用样式和模板之前发生了一次或多次。对话框完成初始化后,错误停止。

有没有人遇到过这个?任何人都可以提出我们可能忽略的解决方案吗?

4

2 回答 2

0

看起来这里已经介绍过了:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/db050ce6-d084-41ad-9a31-c01831687683

应该是一个“已知”的问题。

于 2009-01-15T14:54:10.670 回答
0

我在这里找到了解决方法:

http://blog.jtango.net/2009/05/08/using-a-grid-as-the-itemspanel-for-a-listbox-in-wpf-binding-errors/

ItemContainerStyle使用ListBox.

于 2010-07-01T21:01:20.423 回答