gpt4 book ai didi

wpf - 尽管样式,ComboBoxItem 继续抛出绑定(bind)错误

转载 作者:行者123 更新时间:2023-12-04 21:44:37 25 4
gpt4 key购买 nike

我有一个通过 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 Error: 4 : Cannot find source for binding withreference 'RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment;DataItem=null; target element is 'ComboBoxItem' (Name=''); targetproperty is 'HorizontalContentAlignment' (type 'HorizontalAlignment')


System.Windows.Data Error: 4 : Cannot find source for binding withreference 'RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1''. BindingExpression:Path=VerticalContentAlignment;DataItem=null; target element is 'ComboBoxItem' (Name=''); targetproperty is 'VerticalContentAlignment' (type 'VerticalAlignment')


我也在 ComboBox 元素上指定了 Horizo​​ntal 和 Vertical ContentAlignment,但无济于事。这不是一个可怕的问题,因为项目正确显示。但是在调试时,我在关闭窗口时确实得到了大约 10 秒的延迟,同时它向输出窗口输出了大约 4000 条错误消息(我需要打开它才能捕获合法的绑定(bind)错误。
我可能没有正确阅读错误。为什么找不到绑定(bind)的有效来源?据我所知,我使用 ComboBox 和 CollectionViewSource 的方式符合他们的意图。

最佳答案

我以为我已经在自己的程序中解决了这个问题,但发现它一直间歇性地弹出。终于找到了问题的根源。

如果您使用由 ICollectionView 支持的组合框,并且您堆叠两个或更多 collectionView.Refresh()调用事件队列(例如:由于两个不同的清理操作调用了两次刷新),这将导致它在组合框的每个元素上为每个额外的 Refresh() 生成绑定(bind)错误垃圾邮件调用电话。此绑定(bind)错误只会在您至少打开一次组合框后发生。

重写它以便您只调用 Refresh()一次给定事件将防止弹出绑定(bind)错误。

关于wpf - 尽管样式,ComboBoxItem 继续抛出绑定(bind)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com