初めての WPF デスクトップ アプリケーション
初めてのWPF
MSから公開されいているこのチュートリアルをやってみましょう!
チュートリアル: 初めての WPF デスクトップ アプリケーション
何かがおかしい
最後までやってみましたか?
ListBoxには何も表示されないですよね?
実はこのチュートリアル間違ってます。
間違ってるのはここの
コレ
<Grid.Resources> <!-- Expense Report Data --> <XmlDataProvider x:Key="ExpenseDataSource" XPath="Expenses"> <x:XData> <Expenses> <Person Name="Mike" Department="Legal"> <Expense ExpenseType="Lunch" ExpenseAmount="50" /> <Expense ExpenseType="Transportation" ExpenseAmount="50" /> </Person> <Person Name="Lisa" Department="Marketing"> <Expense ExpenseType="Document printing" ExpenseAmount="50"/> <Expense ExpenseType="Gift" ExpenseAmount="125" /> </Person> <Person Name="John" Department="Engineering"> <Expense ExpenseType="Magazine subscription" ExpenseAmount="50"/> <Expense ExpenseType="New machine" ExpenseAmount="600" /> <Expense ExpenseType="Software" ExpenseAmount="500" /> </Person> <Person Name="Mary" Department="Finance"> <Expense ExpenseType="Dinner" ExpenseAmount="100" /> </Person> </Expenses> </x:XData> </XmlDataProvider> </Grid.Resources>
ではコレのなにが間違っているのでしょうか?
こいつです。
<Expenses> ... </Expenses>
こうでなくてはなりません。
<Expenses xmlns=""> ... </Expenses>
この「xmlns=""」がとても大事です。
詳しくはこの辺。
x:XData XAML ディレクティブ要素
Binding.XPath プロパティ (System.Windows.Data)
「xmlns=""」がないと名前空間をSystem.Windowsから継承してしまいXPathが意図した動きをしないということですね。
チュートリアルに動かないものをのせるのはいかがなものかと思います。
ちなみにこれこっちの記事だとちゃんと直ってます。
https://msdn.microsoft.com/en-us/library/ms752299(v=vs.110).aspx