gpt4 book ai didi

wpf - 定位绑定(bind)错误

转载 作者:行者123 更新时间:2023-12-04 13:05:00 27 4
gpt4 key购买 nike

我正在处理一个输出大量绑定(bind)错误的大型 WPF 应用程序。典型的错误如下所示:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'MenuItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment')

问题是我不知道它来自应用程序的哪个位置。在整个解决方案中搜索 AncestorType={x:Type ItemsControl} 没有必要帮助,因为我仍然不知道哪个结果是罪魁祸首。我试过设置 PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.All;
但额外的信息无助于找到有问题的绑定(bind)。文件名和行号正是我所需要的。无论如何要获取此信息?我能想到的唯一其他解决方案是为候选者指定名称,然后从那里缩小范围。在这种情况下,有没有办法自动为整个解决方案中的所有可命名元素分配一个唯一的 x:Name?

最佳答案

我一般在实际写错误信息的代码上设置断点。当遇到断点时,我使用 Visual Studio 可视化工具检查具有绑定(bind)错误的对象的可视化树。这几乎总是告诉我在我的代码中找到绑定(bind)并修复它的确切位置。 (您可以通过安装自定义跟踪监听器并中断它,然后检查调用堆栈来找出设置断点的位置。)

我还设计了我的应用程序,通过确保绑定(bind)在源完全存在时始终有效来最大限度地减少“误报”的数量。

关于wpf - 定位绑定(bind)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609778/

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