XML Node List作为依赖属性?

时间:2012-08-16 21:30:50

标签: wpf xml data-binding wpf-controls

我有一个xml文件并创建了控件来显示其中的数据。大多数显示的节点没有子节点,但有一些节点。对于那些我需要在ItemsControl中列出一些属性值。我能够创建一个List作为依赖属性,以便测试它并且字符串按预期显示。但是,现在我正在尝试绑定到xml,它似乎没有工作。

我已将依赖项属性更改为List,并使用值SubOptions =“{Binding Path = ChildNodes}”绑定此依赖项属性。在控件内部,ItemsControl的ItemsSource也绑定到它自己的依赖属性。

为什么这不起作用?当我在绑定上粘贴测试转换器时,它给我的值是'XmlChildNodes',我无法直接创建,但每次我尝试将其转换为List隐式地它已经有效...

1 个答案:

答案 0 :(得分:0)

好的,我相信我找到了它。对于有这个问题的其他人来说,发生了什么:

当使用List时,我得到了表单上每个控件实例的列表相同的位置(因此我不能让控件的多个实例具有不同的列表)。我在这里搜索并发现依赖属性由于某种原因默认情况下为每个实例使用相同的列表(哑),但解决方案是放置代码:

SetValue(SubOptionsProperty, new List<string>());

在构造函数中,以便它设置为新列表。这对于字符串很有用,但是绑定或xml列表显然不能以这种方式工作,它似乎是从绑定设置值,然后构造函数中的这个代码将它转储并设置为新列表。有趣的是,它没有使用相同的列表,我仍然可以在每个控件上有不同的列表。

在评论出这条线之后似乎现在正在工作,但如果有人有任何更多的信息,我很想知道为什么它有用......