このまったく同じコードは、Visual Studio 2010 WPF デザイナーでは正しく表示されますが、VS 2013 デザイナーでは機能しません。
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="200" Width="300">
<Window.Resources>
<XmlDataProvider x:Key="xdata" XPath="root" IsInitialLoadEnabled="True" IsAsynchronous="False">
<x:XData>
<root xmlns="">
<item value="one" />
<item value="two" />
<item value="three" />
</root>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Source={StaticResource xdata}, XPath=*}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=@value}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
VS 2010 デザイナーは、項目「1」、「2」、および「3」を含むリスト ボックスを正しく表示します。しかし、VS 2013 デザイナーには空のリスト ボックスしか表示されません。
XmlDataProvider の Source プロパティをプロジェクトの一部である xml ファイルに設定すると、2013 デザイナーに表示されますが、xml ファイルへの変更は、プロジェクトが再ビルドされるまでデザイナーに反映されません。ただし、VS 2010 では、x:XData タグ内のインライン xml への変更は、すぐにデザイナーに反映されます。
私は何を間違っていますか?それとも、Microsoft は 2013 年にこの動作を削除しましたか?