我有以下测试案例xaml。
<Window.Resources>
<XmlDataProvider x:Key="testDS1">
<x:XData>
<root xmlns="">
<item>1</item>
<item>1</item>
</root>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<StackPanel>
<ListBox ItemsSource="{Binding Source={StaticResource testDS1},XPath=/root/item}"/>
<Button Content="Change" Click="OnChangeClicked"/>
</StackPanel>
这显示了一个数字箱。 然后我执行这项法典。
public void OnChangeClicked(object sender, RoutedEventArgs e)
{
XmlDataProvider ds = Resources["testDS1"] as XmlDataProvider;
string xml = "<root><item>1</item></root>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
ds.Document = doc;
}
造成这种警告。
System.Windows.Data Error: 43 : BindingExpression with XPath cannot bind to non-XML object.; XPath= /root/item BindingExpression:Path=; DataItem= XmlDataCollection (HashCode=40644060); target element is ListBox (Name= ); target property is ItemsSource (type IEnumerable ) XmlDataCollection: MS.Internal.Data.XmlDataCollection
然而,清单Box受到正确约束,具有正确的价值。 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/711d3735-34c7-4358-8787-958752bcaabe“rel=”thread。 如何消除这一警告? 我尝试了具有约束力的行动。 明确但甚至触发了这一警告。 是否应该与这一警告相处?