【发布时间】:2010-11-04 11:13:03
【问题描述】:
在我的项目中,我绑定到一个 XML 文件。有几种绑定:一个绑定到 textBox,一个绑定到列表,一个绑定到 UserControl。除了 UserControl 之外的所有东西都可以工作,但是在输出中我得到了所有 3 个绑定而不是 2 个的错误。
错误如下所示:
System.Windows.Data 错误:43: 带有 XPath 的 BindingExpression 不能 绑定到非 XML 对象。 XPath='/datlg/@timeStamp' BindingExpression:Path=/InnerText; DataItem='XmlDataCollection' (哈希码=199777);目标元素是 '文本块'(名称='');目标属性 是“文本”(输入“字符串”) XmlDataCollection:'MS.Internal.Data.XmlDataCollection'
我的 textBlock 看起来是这样的:
<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);
注意:出于测试目的,我暂时将数据绑定到 textBox 以查看绑定是否有效(例如,XPath 是否设置为正确的,等等)。如果绑定到 textBox 就可以了,但是绑定到 DP 就不行了。
注释行是不起作用的行。
由于所有(工作和不工作)绑定都会出错,因此很难找出我的用户控件绑定不工作的原因。
任何想法为什么所有绑定都会出错以及为什么在 UserControl 中绑定到 DP 不起作用?
【问题讨论】:
标签: c# wpf xml data-binding xpath