【问题标题】:Which view is causing the WPF binding expression error哪个视图导致 WPF 绑定表达式错误
【发布时间】:2014-05-24 16:57:08
【问题描述】:

当我运行我的 WPF 应用程序时,我在输出窗口中显示了很多绑定表达式错误。但是每条错误消息都没有告诉我哪个视图 (.xaml) 文件有错误。比如下面的错误并没有告诉我:

System.Windows.Data Error: 40 : System.Windows.Data Error: 40 :
BindingExpression path error: 'IsVisible' property not found on 'object' 
''PrescriptionViewModel' (HashCode=9677327)'. BindingExpression:Path=IsVisible; 
DataItem='PrescriptionViewModel' (HashCode=9677327); target element is 
'ViewPortContentPanel' (Name=''); target property is 'Visibility'
(type 'Visibility')

有没有办法解决这个问题。我的元素 ViewPortContentPanel 在我的应用程序的几十个视图中使用,这就是找到它的问题。

谢谢!

【问题讨论】:

  • 您有多少浏览量?查看您的 XAML 并查看您尝试修改这些属性的位置。
  • 通常,每个窗口都有一个视图模型对象。您是否在所有屏幕中仅使用一个 View Model 对象?
  • 这是一个 Prism 应用程序,有近百个视图,视图的数据上下文在此类应用程序中不明显。错误中提到的视图模型是一个复合视图模型,它为多个子视图提供属性。
  • 尝试通过启用Common Language Runtime Exceptions 来调试应用程序。该选项位于Debug > Exceptions 下。

标签: wpf xaml wcf-binding


【解决方案1】:

如果您正确指定了所有绑定和 DataContext,您可以使用 Resharper(如果没有,至少试用版)来查找属性 PrescriptionViewModel.IsVisible 的所有用法并找出问题所在。

如果您的 PrescriptionViewModel 中没有属性 IsVisible,您可能希望暂时(或不)创建它,然后再次应用“查找用法”。

【讨论】:

  • 但这就是我要解决的问题。未正确指定绑定。该错误说明了哪个视图模型,但没有说明此错误来自哪个视图。
猜你喜欢
  • 2017-06-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2019-11-19
  • 1970-01-01
  • 2016-08-18
  • 2011-01-10
  • 1970-01-01
相关资源
最近更新 更多