В моем проекте я привязываюсь к XML-файлу. Есть несколько привязок: одна к textBox и одна к списку и одна к UserControl. Все кроме UserControl работает, но в выводе я получаю ошибку для всех 3 привязок, а не 2.
Ошибка выглядит так:
System.Windows.Data Ошибка: 43:
BindingExpression с XPath не может
привязка к не XML-объекту .;
XPath = '/ datlg / @ TIMESTAMP'
BindingExpression: Path = / InnerText;
DataItem = 'XmlDataCollection'
(HashCode = 199777); целевой элемент
'TextBlock' (Name = ''); целевое свойство
это «Текст» (тип «Строка»)
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);
Примечание: для целей тестирования я временно привязал данные к textBox, чтобы проверить, работает ли привязка (например, установлен ли XPath на правильный и т. Д.). И он работает, если он связан с textBox, но не работает, если он связан с DP.
Комментируемые строки - это те, которые не работают.
И поскольку все (работающие и не работающие) привязки выдают ошибку, трудно понять, почему привязка моего пользовательского элемента управления не работает.
Есть идеи, почему все привязки дают ошибку и почему не работает привязка к DP внутри UserControl?