在我的項目中,我綁定了一個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不起作用?