LoginSignup
0
2

More than 3 years have passed since last update.

Prism入門(3)

Last updated at Posted at 2019-05-13

以前に勉強してから時間が経ったので、もう一度MVVMを勉強し直す。

環境:Visual Studio Professional 2019 + Prism7.1

1.環境構築

1-1.Prismインストール

Visual Studioを起動し、[拡張機能]-[拡張機能の管理]から『Prism Tempkate Pack』(バージョンは2019/5/13時点では2.1.6)をインストールする。
image.png

1-2. .NETポータブルライブラリ対象パック

公式サンプルのファイルを開こうとしたらインストールする必要があった。

1-3.プロジェクト作成

新しいプロジェクトの作成で「Prism Blank App(WPF)」を選択する。
image.png

2.学習

2-1.公式サンプル

3.方針

3-1.MVVMの方針

Viewのコードビハインド側には基本的に何も書かない。
ViewのXAMLとViewModelで対応する。

4.データバインド

4-1.ラベルのバインド

XAML
<Label Content="{Binding SystemDateLabel}" />
ViewModel
        private string _systemDateLabel = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
        public string SystemDateLabel
        {
            get { return _systemDateLabel; }
            set { SetProperty(ref _systemDateLabel, value); }
        }

4-2.ボタンのバインド

XAML
            <Button Content="{Binding BtnName}" Command="{Binding SystemDateUpdateButton}" />
ViewModel
 public MainWindowViewModel()
        {
            SystemDateUpdateButton = new DelegateCommand(SystemDateUpdateExecute);
        }

        //
        private string _systemDateLabel = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
        public string SystemDateLabel
        {
            get { return _systemDateLabel; }
            set { SetProperty(ref _systemDateLabel, value); }
        }

        //

        private string _btnName = "時刻更新";
        public string BtnName
        {
            get { return _btnName; }
            set { SetProperty(ref _btnName, value); }
        }

        public DelegateCommand SystemDateUpdateButton { get; }

        private void SystemDateUpdateExecute()
        {
            SystemDateLabel = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
        }

・ボタンのCommandにBindingで名前を付ける。
・ViewModelで付けた名前のDelegateCommandをプロパティで宣言する。
・コンストラクタでNewする。
・実行したいメソッドをPrivateで作成する。

5.画面遷移

5-1.ナビゲーション方式

  1. 「Views」フォルダを選択し、右クリックで[追加]-[新しい項目]で、「Prism User COntrol(WPF)」を追加する。
    image.png

  2. ViewとViewModelが自動で作成される。

9.TIPS

9-1.画面表示

9-1-1.画面の表示位置を中央に

XAMLファイルに「WindowStartupLocation="CenterScreen"」を記載する。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2