我有一个通过 CollectionViewSource 填充的组合框。这些项目是通过传入项目类型(在本例中为 ProjectViewModel)的数据模板构建的。这是 .NET 4.0 中的 WPF。
在我的 window.resources 中,我指定了以下内容:
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
尽管有这种风格,我仍然收到以下错误:
System.Windows.Data 错误:4:找不到与引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1''的绑定源。BindingExpression:Path=HorizontalContentAlignment; 数据项=空;目标元素是'ComboBoxItem'(名称='');目标属性是“HorizontalContentAlignment”(类型“HorizontalAlignment”)
System.Windows.Data 错误:4:找不到与引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1''的绑定源。绑定表达式:路径=垂直内容对齐;数据项=空;目标元素是'ComboBoxItem'(名称='');目标属性是“VerticalContentAlignment”(类型“VerticalAlignment”)
我也在 ComboBox 元素上指定了 Horizontal 和 Vertical ContentAlignment,但无济于事。这不是一个可怕的问题,因为项目正确显示。但是在调试时,我在关闭窗口时确实得到了大约 10 秒的延迟,同时它向输出窗口输出了大约 4000 条错误消息(我需要打开它才能捕获合法的绑定错误。
我可能没有正确阅读错误。为什么找不到绑定的有效来源?据我所知,我使用 ComboBox 和 CollectionViewSource 的方式符合他们的意图。