導入
このコースはModel・ViewModel側の設計とTDDに主眼を置くため、WPFのXAML自体は「読めれば十分」というレベルに絞って駆け足で復習します。XAMLをじっくり学びたい方はC# WPFコースで、Button・TextBox・ListBoxなど主要コントロールを1つずつ扱っています。
説明
タスク管理アプリの画面は、おおよそ次のようなXAMLになります。
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="タスク管理" Height="450" Width="400">
<StackPanel Margin="12">
<TextBox x:Name="NewTaskBox" />
<Button Content="追加" />
<ListBox x:Name="TaskListBox" />
</StackPanel>
</Window>
- Window: 1つの画面(ウィンドウ)を表す一番外側の入れ物
- StackPanel: 子要素を縦(または横)に並べるだけのシンプルなレイアウト
- TextBox / Button / ListBox: それぞれ文字入力・ボタン・一覧表示のコントロール。タスクの追加フォームと一覧はこの3つで作れます
WPFのコントロールは「見た目のデータをどこから受け取るか」という入り口としてDataContextというプロパティを持ちます。MVVMでは、ここにViewModelのインスタンスを渡し、{Binding プロパティ名}という書き方で画面とViewModelのプロパティを結びつけます。この{Binding}の具体的な使い方は、WPFコースのデータバインディング回、そしてこのコースの第7章で扱います。
まとめ
Windowは画面の入れ物、StackPanelなどのレイアウトの中にコントロールを並べる- タスク管理アプリの画面は
TextBox(入力)・Button(追加)・ListBox(一覧)でほぼ作れる DataContextと{Binding}がView⇄ViewModelをつなぐ入り口。詳細は第7章
次章: いよいよTDDでタスク管理アプリの中心、Entityの実装に入ります。