2011-02-07 244 views
8

無法在「綁定」類型的「來源」屬性上設置「綁定」。 '綁定'只能在DependencyObject的DependencyProperty上設置。無法在「綁定」類型的「來源」屬性上設置「綁定」

<TreeView Height="400" Width="400"> 
    <TreeViewItem ItemsSource="{Binding Source={Binding Path=Data}, XPath=*, 
Converter={StaticResource stringToXmlDataProviderConverter},ConverterParameter=/root }" Header="header" /> 
    </TreeView> 
  • 什麼是錯的ItemsSource =「{綁定源= {綁定路徑=數據}?

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

我嘗試使用this代碼示例。 的不同的是我想將ItemsSource綁定到datacontext中的數據。 轉換器沒有問題。

編輯:

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

填充TreeView的一個元素(字符串)。所以datacontext是正確的。

編輯: 此代碼效果更好。有沒有一種通用的方式來讀取ThreeView中的XML?我不知道XML的結構。在我看到的所有例子中,你必須聲明子節點類型。

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

「數據」是什麼樣的?它的數據類型是什麼?它的屬性是什麼? – Gabe 2011-02-07 20:05:25

回答

4

綁定的屬性源無法綁定,因爲它不是依賴屬性。你確定你不想這樣做? :

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

編輯:

的清單來檢查調試時綁定:

1)你有沒有正確設置的DataContext?

2)該屬性是否對XAML代碼可見?

3)屬性是否被訪問(在其getter中放置一個斷點)。它是否會返回應有的價值?

4)屬性更新是否正確?任一下列情況下必須適用:

  • 該物業是DependecyProperty

  • 物業通知有關 其通過INotofyPropertyChanged

  • 更改屬性值我們調用的InitializeComponent()

  • 之前敲定
+0

解決方案是什麼? – 2011-02-07 19:49:58