在我的项目中,我绑定了一个XML文件。有几个绑定:一个到textBox,一个到一个列表,一个到一个UserControl。所有的用户控件行为以外,但在输出我得到错误的所有3个绑定,而不是2即使绑定正在工作,Visual Studio也会报告绑定错误
错误看起来是这样的:
System.Windows.Data Error: 43 : BindingExpression with XPath cannot bind to non-XML object.; XPath='/datlg/@timeStamp' BindingExpression:Path=/InnerText; DataItem='XmlDataCollection' (HashCode=199777); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') XmlDataCollection:'MS.Internal.Data.XmlDataCollection'
我的文本块中查找此:
<TextBlock Margin="0"
Text="{Binding XPath=/datlg/@timeStamp}"
TextWrapping="Wrap"/>
这里是用户控件的代码:不
string xPath = String.Format("datlg/Devl/dev[@id='{0}']", id);
((XmlDataProvider)this.DataContext).XPath = xPath;
Binding b = new Binding();
b.Source = (XmlDataProvider)this.DataContext;
b.XPath = "prml/prm[@id='1']";
//b.Converter = (IValueConverter)this.Resources["IntToBoolConverter"];
b.Mode = BindingMode.OneWay;
//this.SetBinding(VacuumPumpControl.IsPoweredOnProperty, b);
testBox.SetBinding(TextBlock.TextProperty, b);
e:用于测试目的我已将数据暂时绑定到textBox以查看绑定是否正在工作(例如,是XPath设置为正确的,等等)。如果它绑定到textBox,它会起作用,但如果它绑定到DP,则它不起作用。
评论行是不起作用的行。
并且所有(工作和不工作)绑定都会给出错误,这很难找出为什么我的用户控件的绑定不起作用。
任何想法为什么所有绑定都会给出错误,以及为什么在UserControl中绑定到DP不起作用?