无法在“绑定”类型的“源”属性上设置“绑定”。 '绑定'只能在DependencyObject的DependencyProperty上设置。
<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是正确的。
修改 这段代码效果更好。是否有一种在ThreeView中读取XML的通用方法?我不知道XML的结构。在我看到的所有示例中,您必须声明子节点类型。
<TreeViewItem DataContext="{Binding Path=Data, Converter={StaticResource stringToXmlDataProviderConverter}}" ItemsSource="{Binding .}" Header="Parameters" />
答案 0 :(得分:4)
绑定的属性Source无法绑定,因为它不是依赖属性。你确定不想这样做吗? :
{Binding Path=Data, XPath=*, Converter={StaticResource stringToXmlDataProviderConverter},ConverterParameter=/root}
编辑:
调试绑定时要检查的核对表:
1)您是否正确设置了DataContext?
2)XAML代码是否可以看到该属性?
3)是否访问了属性(将断点放入其getter中)。它会返回它应该的值吗?
4)属性是否正确更新?必须遵循以下任一方案:
该属性为DependecyProperty
该物业通知 通过INotofyPropertyChanged进行更改
我们最终确定了物业价值 在调用InitializeComponent()