Prism入門(3)
以前に勉強してから時間が経ったので、もう一度MVVMを勉強し直す。
環境:Visual Studio Professional 2019 + Prism7.1
1.環境構築
1-1.Prismインストール
Visual Studioを起動し、[拡張機能]-[拡張機能の管理]から『Prism Tempkate Pack』(バージョンは2019/5/13時点では2.1.6)をインストールする。
1-2. .NETポータブルライブラリ対象パック
公式サンプルのファイルを開こうとしたらインストールする必要があった。
1-3.プロジェクト作成
新しいプロジェクトの作成で「Prism Blank App(WPF)」を選択する。
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");
}
<Label Content="{Binding SystemDateLabel}" />
private string _systemDateLabel = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
public string SystemDateLabel
{
get { return _systemDateLabel; }
set { SetProperty(ref _systemDateLabel, value); }
}
<Button Content="{Binding BtnName}" Command="{Binding SystemDateUpdateButton}" />
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.ナビゲーション方式
9.TIPS
9-1.画面表示
9-1-1.画面の表示位置を中央に
9-1.画面表示
9-1-1.画面の表示位置を中央に
XAMLファイルに「WindowStartupLocation="CenterScreen"」を記載する。
Author And Source
この問題について(Prism入門(3)), 我々は、より多くの情報をここで見つけました https://qiita.com/kero3/items/d00a674dc865b9d656f6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .