本文へスキップ
BecomeCoder

C# MVVMコース · 第1章 MVVMとこのコースの進め方 · レッスン4

WPFの最低限復習 ― Windowと主要コントロール

ローカル実施

導入

このコースは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の実装に入ります。