我正在使用包含ListBox
的WPF对话框窗口。列表框可以显示“图标”和“列表”视图。为此,我们使用了动态应用于ListBoxItem
的{{1}}个样式,以及一对相应的ListBox
s。它就像它显示得很漂亮。但是,加载此对话框时,我们会收到几十个绑定错误,例如:
System.Windows.Data错误:4:无法找到与引用'RelativeSource FindAncestor绑定的源,AncestorType ='System.Windows.Controls.ItemsControl',AncestorLevel ='1''。 BindingExpression:路径= VerticalContentAlignment;的DataItem = NULL; target元素是'ListBoxItem'(Name =''); target属性是'VerticalContentAlignment'(类型'VerticalAlignment')
我们的理论是样式和模板在ItemsPanelTemplate
之前加载,并且无法使用以下代码找到它们绑定的属性:
ListBox
在<Setter Property="VerticalContentAlignment" Value="{Binding
Path=VerticalContentAlignment, RelativeSource={RelativeSource
AncestorType={x:Type ItemsControl}}}"/>
初始化并应用样式和模板之前,这似乎发生了一次或多次。对话框完成初始化后,错误停止。
之前有没有遇到过这个?任何人都可以建议我们可能忽略的解决方案吗?
答案 0 :(得分:0)
这里有这样的内容:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/db050ce6-d084-41ad-9a31-c01831687683
被认为是一个“已知”问题。
答案 1 :(得分:0)
我在这里找到了解决方法:
您可以使用ItemContainerStyle
上的ListBox
设置样式。