.NET WPF XAML“;BindingExpression路径错误:。。。“未找到财产”;

.NET WPF XAML“;BindingExpression路径错误:。。。“未找到财产”;,.net,wpf,xaml,binding,properties,.net,Wpf,Xaml,Binding,Properties,我试图将W3CError类型对象的集合绑定到WPF ListView控件 这是一个很好的13线小班 Class W3CError Public Type As ErrorOrWarning Public Line As Integer Public Col As Integer Public Message As String Public MessageId As String Public Explanation As String

我试图将W3CError类型对象的集合绑定到WPF ListView控件

这是一个很好的13线小班

Class W3CError Public Type As ErrorOrWarning Public Line As Integer Public Col As Integer Public Message As String Public MessageId As String Public Explanation As String Public Source As String Enum ErrorOrWarning ValidationError ValidationWarning End Enum End Class W3CError类 公共类型为ErrorOrWarning 作为整数的公共行 作为整数的公共列 作为字符串的公共消息 作为字符串的Public MessageId 作为字符串的公共解释 作为字符串的公共源 枚举错误警告 验证错误 验证警告 结束枚举 末级 它不起作用。我在Visual Studio的输出窗口中遇到以下绑定错误:

System.Windows.Data错误:39: BindingExpression路径错误:“行” 在“对象”上找不到属性 “W3CError”(哈希代码=…)”。 BindingExpression:Path=Line; DataItem='W3CError' (HashCode=…);目标元素是 “TextBlock”(名称=“”);目标属性 为“文本”(类型为“字符串”)

哦,不,那不是财产。这完全是公开的。我想这对WPF绑定来说还不够好吧

我通过将我的课程延长到一个丑陋的69行属性样板来实现它

Class W3CError Private _Type As ErrorOrWarning Private _Line As Integer Private _Col As Integer Private _Message As String Private _MessageId As String Private _Explanation As String Private _Source As String Enum ErrorOrWarning ValidationError ValidationWarning End Enum Public Property Type() As ErrorOrWarning Get Return _Type End Get Set(ByVal value As ErrorOrWarning) _Type = value End Set End Property Public Property Line() As Integer Get Return _Line End Get Set(ByVal value As Integer) _Line = value End Set End Property Public Property Col() As Integer Get Return _Col End Get Set(ByVal value As Integer) _Col = value End Set End Property Public Property Message() As String Get Return _Message End Get Set(ByVal value As String) _Message = value End Set End Property Public Property MessageId() As String Get Return _MessageId End Get Set(ByVal value As String) _MessageId = value End Set End Property Public Property Explanation() As String Get Return _Explanation End Get Set(ByVal value As String) _Explanation = value End Set End Property Public Property Source() As String Get Return _Source End Get Set(ByVal value As String) _Source = value End Set End Property End Class W3CError类 Private\u类型为ErrorOrWarning 私有_行作为整数 私有列为整数 私有消息作为字符串 Private\u MessageId作为字符串 Private\u解释为字符串 私有源作为字符串 枚举错误警告 验证错误 验证警告 结束枚举 公共属性类型()为ErrorOrWarning 得到 返回类型 结束 设置(ByVal值为ErrorOrWarning) _类型=值 端集 端属性 公共属性行()为整数 得到 返回线 结束 设置(ByVal值为整数) _行=值 端集 端属性 公共属性Col()为整数 得到 返回列 结束 设置(ByVal值为整数) _Col=值 端集 端属性 作为字符串的公共属性消息() 得到 返回消息 结束 设置(ByVal值作为字符串) _消息=值 端集 端属性 公共属性MessageId()作为字符串 得到 返回消息ID 结束 设置(ByVal值作为字符串) _MessageId=value 端集 端属性 公共属性解释()为字符串 得到 返回解释 结束 设置(ByVal值作为字符串) _解释=价值 端集 端属性 作为字符串的公共属性源() 得到 返回源 结束 设置(ByVal值作为字符串) _来源=价值 端集 端属性 末级 有更好的方法吗?

如果您使用的是C,我会说使用自动属性,但我认为它们不在VB中


所以可能不是。您甚至可能想更进一步,让您的类实现INotifyPropertyChanged,以便您的UI知道属性是否更改。

我不认为这是更好的方法,但您可以通过该方法实现字段并将其作为伪属性公开。不过,如果您有几十个字段,那么它的代码就会更少



最初由Robert Macnee发布,但后来被删除。在这里恢复是因为我感兴趣…

骗子!我宁愿VB有自动属性而不是内联XML。我相信VB的下一个版本(与.NET4.0/VisualStudio2010一起提供的版本)将有自动属性。现在没有帮助,但至少最终会有帮助。啊。。。这就是为什么我的绑定不起作用!谢谢。我希望我帮你省了点麻烦,基隆。