メモの日々


2017年06月09日(金) [長年日記]

[c#] WPFでHello World

VisualStudio 2015を使ってWPFアプリケーションを作ろうとしている。難しいのでメモしていきたい。

まずはHello World。出来上がりはこれだ。

画面イメージ

MainWindow.xaml

<Window x:Class="Hello.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Hello"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <local:MainWindowViewModel/>
    </Window.DataContext>
    <Grid>
        <TextBlock x:Name="textBlock" Text="{Binding Text}"/>
    </Grid>
</Window>
  • MVVMにしたいのでViewModelクラスを参照する。ViewとViewModelの結合をどう実現するのがいいのかまだよくわからないが、XAML上で指定するのが一番わかりやすい気がするので <Window.DataContext> を使ってViewModelクラスを指定した。
  • ウィンドウにはテキスト表示用にTextBlockを置いた。
    • TextBlockのTextプロパティにViewModelとのバインディングを記述した。「{Binding Text}」と書くと、DataContextに指定したクラスのインスタンスのTextプロパティの値が設定される。

MainWindowViewModel.cs

namespace Hello
{
    class MainWindowViewModel
    {
        public string Text => "Hello World";
    }
}
  • ViewModelクラスは今の所何も継承しなくていいはず。Textプロパティを定義した。

上記2つのファイルを編集・作成すればアプリケーションが完成する。