2011-02-07 5 views
8

«Связывание» не может быть установлено в свойстве «Источник» типа «Связывание». «Связывание» может быть установлено только на DependencyProperty объекта DependencyObject.«Связывание» не может быть установлено в свойстве «Источник» типа «Связывание»

<TreeView Height="400" Width="400"> 
    <TreeViewItem ItemsSource="{Binding Source={Binding Path=Data}, XPath=*, 
Converter={StaticResource stringToXmlDataProviderConverter},ConverterParameter=/root }" Header="header" /> 
    </TreeView> 
  • Что с ItemsSource = "{Binding Source = {Binding Path = Data}?

    Data = "<root><parm1>1</parm1><parm2>2</parm2><parm3>3</parm3></root>" 
    

Я пытаюсь использовать образец this кода. отличаются, что я хочу привязать ItemsSource к данным в datacontext. В преобразователе нет ничего плохого.

РЕДАКТИРОВАТЬ:

<TreeViewItem ItemsSource="{Binding Path=Data}" Header="Parameters" /> 

заливка TreeView с одним элементом (строки). Поэтому datacontext правильный.

EDIT: Этот код работает лучше. Есть ли общий способ чтения XML в ThreeView? Я не знаю структуру XML. Во всех примерах я видел, что вам нужно объявлять типы узлов.

<TreeViewItem DataContext="{Binding Path=Data, Converter={StaticResource stringToXmlDataProviderConverter}}" ItemsSource="{Binding .}" Header="Parameters" /> 
+0

Что такое 'Data'? Каков его тип данных? Каковы его свойства? – Gabe

ответ

4

Свойство Binding Source не может быть связано, поскольку это свойство не является зависимым. Вы уверены, что не хотите этого делать? :

{Binding Path=Data, XPath=*, Converter={StaticResource stringToXmlDataProviderConverter},ConverterParameter=/root} 

EDIT:

Контрольный список для проверки во время отладки привязок:

1) Правильно ли набор DataContext?

2) Является ли свойство видимым для кода XAML?

3) Доступен ли доступ к объекту (поместите контрольную точку в его приемник). Возвращает ли оно значение, которое оно должно использовать?

4) Обновлено ли свойство? В любом из следующих сценариев должны применяться:

  • Свойство DependecyProperty

  • Свойство уведомляет о ее изменения через INotofyPropertyChanged

  • Значение свойства нас окончательно перед вызовом InitializeComponent()

+0

Какое решение? –

+0

Я удалил внутреннюю привязку. –

+0

Когда я использую ваш код, я не получаю никакого исключения, но я не получаю никаких данных в дереве. stringToXmlDataProviderConverter также не запускается. –

Смежные вопросы