TransitionViewModelBase クラス関連の仕様


TransitionViewModelBase

データ検証と画面遷移及び表示状態設定機能を持つビューモデルの基底クラス

構文

public abstract class TransitionViewModelBase : DialogViewModelBase, IWindowCloseCommand, IViewModelStatus, IReceiveFinished

プロパティ

public WindowAction DisplayMode { get; protected set; }
ウィンドウの表示状態を取得・設定します。
View 側で PropertyChangedTrigger の Binding と DisplayModeAction の DisplayMode にバインドしてください。
protected TransitionViewModelBase PreviousViewModel { get; }
前画面のビューモデルを取得します。
public override object Container {get; set; }
ウィンドウ作成元からのデータ受け取り用プロパティ
public bool CanCloseWindow { get; }
ウィンドウを閉じることが可能かを取得します。
public ViewModelStatus CurrentStatus { get; set; }
ビューモデルの処理状態を取得・設定します。

メソッド

protected virtual bool WindowCloseCanExecute(object param)
ウィンドウが閉じることの出来る状態かどうかを返します。
仮想メソッドは常に 'true' を返します。制御が必要な場合はオーバーライドしてください。
protected virtual void OnWindowClosed()
ウィンドウがクローズされた際の操作
protected virtual void TransitionComplete()
一連の画面遷移の完了を設定します。
public virtual void WindowClose()
ビューモデルからウィンドウへ Close を通知するメソッドです。
public virtual void OnFinished(ITransContainer container)
画面遷移完了時に実行する処理です。

コマンド

public ICommand WindowCloseCommand { get; }
ウィンドウを閉じるコマンド
public ICommand WindowClosedCommand { get; }
ウィンドウがクローズされた際の操作コマンド
ウィンドウの Closed イベントが発生した際に呼び出されるようにしてください。

DialogViewModelBase

データ検証とダイアログ表示の基本機能を提供するビューモデルの基底クラス

構文

public abstract class DialogViewModelBase : ValidationViewModelBase, IDialogTransferContainer

プロパティ

public object CommunicationDialog { get; protected set; }
作成する Dialog に渡すデータを取得・設定します。
View 側で DialogTransferDataAction の Parameter にバインドしてください。
public Type DialogType { get; protected set; }
表示するカスタムダイアログボックスの型の情報
View 側で DialogTransferDataAction の DialogType にバインドしてください。
public virtual object Container { get; set; }
ウィンドウ作成元から渡されたデータの受取用
public Action<bool?> DialogActionCallback { get; protected set; }
ダイアログが閉じられた後に実行するコールバックを取得・設定します。
View 側で DialogTransferDataAction の ActionCallBack にバインドしてください。
public object ResultViewModel { get; set; }
ダイアログ表示で生成されたダイアログのビューモデルへの参照を取得・設定します。
(ダイアログで設定された値の参照用)
View 側で DialogTransferDataAction の ResultViewModel にバインドしてください。
public MessageDialogActionParameter MessageDialogActionParam { get; set; }
MessageDialogActionに渡すパラメーター
View 側で PropertyChangedTrigger の Binding と MessageDialogAction の Parameter にバインドしてください。
public Action<MessageBoxResult> MessageDialogActionCallback { get; set; }
MessageDialogActionの実行後に呼ばれるCallBack
View 側で MessageDialogAction の ActionCallBack にバインドしてください。

メソッド

protected virtual void OnContainerReceived(object container)
ウィンドウ作成元からのデータを受け取った際に行う処理

ModalViewModelBase

データ検証とモーダルダイアログ表示機能を持つビューモデルの基底クラス

構文

public abstract class ModalViewModelBase : DialogViewModelBase

プロパティ

public bool? Result { get; set; }
View 側の DialogResult セット用の PropertyChangedTrigger へバインドします。
View 側で PropertyChangedTrigger の Binding と ChangePropertyAction の Value にバインドしてください。

メソッド

protected virtual void OkExecute()
モーダルダイアログの OK ボタンクリック時の処理
仮想メソッドは Window の DialogResult プロパティに true をセットする動作のみです。制御が必要な場合はオーバーライドしてください。
protected virtual bool OkCanExecute(object param)
OkCommand の 有効/無効 を返します。
データ検証エラーの有無を返します。データ検証エラーを用いないで判断したい場合はオーバーライドしてください。

コマンド

public ICommand OkCommand { get; }
OK ボタン用のコマンドです。
ボタンの有効・無効をコントロールするため、コマンドで Window の DialogResult を設定します。

TransitionContainerBase

画面遷移の際のデータコンテナの基底クラス

構文

public class TransitionContainerBase : ITransContainer

コンストラクタ

public TransitionContainerBase(string key, TransitionViewModelBase viewModel)
画面遷移のキー及び遷移開始元ビューモデルを設定して画面遷移の際のデータコンテナを作成します。

プロパティ

public string Key { get; }
遷移を区別するためのキーを取得します。
public TransitionViewModelBase TransStartViewModel { get; }
遷移動作の開始元ビューモデルを取得します。
public TransitionViewModelBase PreviousViewModel { get; set; }
前画面のビューモデルを取得・設定します。

ITransContainer

画面遷移の際のデータコンテナのインターフェイス

構文

public interface ITransContainer

プロパティ

string Key { get; }
遷移を区別するためのキーを取得します。
TransitionViewModelBase TransStartViewModel { get; }
遷移動作の開始元ビューモデルを取得します。
TransitionViewModelBase PreviousViewModel { get; set; }
前画面のビューモデルを取得・設定します。

ViewModelUtility

ViewModel 関連のユーティリティクラス

構文

public static class ViewModelUtility

メソッド

public static ViewModelBase GetMainWindowViewModel()
MainWindow となっている Window の ViewModel を返します。
public static int Count(Type type)
指定されたビューモデルのインスタンスの数を返します。
public static IReadOnlyList<ViewModelBase> GetViewModels(Type type)
指定されたビューモデルのインスタンスの一覧を返します。
public static void CloseViewModels(Type type)
指定されたビューモデルのインスタンスの IWindowCloseCommand インターフェイス のWindowClose メソッドを実行します。
public static bool IsReadyCloseAllWindows
すべてのウィンドウが閉じることが可能か確認します。

DialogTransferDataAction

データを渡してモードレス ダイアログ ウィンドウを表示するアクション
ダイアログ側のビューモデルにデータ受取り用の「public object Container」プロパティが必要

構文

public class DialogTransferDataAction : TriggerAction<FrameworkElement>

プロパティ

public object Parameter { get; set; }
ダイアログウィンドウに渡すデータを格納
public Type DialogType { get; set; }
表示するダイアログのクラス名
public DialogModes DialogMode { get; set; }
ダイアログの表示種別
public Action<bool?> ActionCallBack { get; set; }
ダイアログを閉じた際に実行するコールバック
public object ResultViewModel { get; set; }
作成したウィンドウのビューモデルオブジェクトへの参照
ダイアログ側で設定したデータの参照用

DialogModes

ダイアログの表示種別

構文

public enum DialogModes

メンバー

Modal
モーダル ダイアログとして表示する。
Modeless
モードレス ダイアログとして表示する。

DisplayModeAction

モードレス ウィンドウの表示変更アクション

構文

public class DisplayModeAction : TriggerAction<FrameworkElement>

プロパティ

public WindowAction DisplayMode { get; set; }
変更する表示状態

ViewModelStatus

画面遷移を行うビューモデルの処理状況を表す列挙型です。

構文

public enum ViewModelStatus
Completed
完了
Halfway
未完了

WindowAction

画面遷移を行うビューモデルへセットするウィンドウの状態を表す列挙型です。

構文

public enum WindowAction

メンバー

Show
表示する
Hide
非表示にする
Close
閉じる

MessageDialogAction

MessageBox を表示するアクション

構文

public class MessageDialogAction : TriggerAction<FrameworkElement>

プロパティ

public IMessageDialogActionParameter Parameter { get; set; }
メッセージボックスやダイアログを出すために必要となる情報を受け取る
public Action<MessageBoxResult> ActionCallBack
ダイアログでの選択結果をViewModelに通知するコールバックメソッド

MessageDialogActionParameter

MessageDialogAction へ渡すパラメーター
IsDialog が false のときには Button の設定は反映されません。

構文

public class MessageDialogActionParameter : IMessageDialogActionParameter

コンストラクタ

public MessageDialogActionParameter(string message, string caption) : this(message, caption, MessageBoxButton.OK, false)
public MessageDialogActionParameter(string message, string caption, MessageBoxButton button) : this(message, caption, button, true)
public MessageDialogActionParameter(string message, string caption, MessageBoxButton button, bool isDialog)

プロパティ

public string Message { get; protected set; }
MessageBoxに表示するメッセージ
public string Caption { get; protected set; }
MessageBox に表示するタイトル
public MessageBoxButton Button { get; protected set; }
MessageBox に表示するボタン
public bool IsDialog { get; protected set; }
true:ダイアログ(ユーザ応答を処理する)、false:メッセージ

EventCommandAction

イベント発生時にコマンドを実行するアクション
実行するコマンドの引数に発生したイベントの EventArgs を設定します。

構文

public class EventCommandAction : TriggerAction<UIElement>

プロパティ

public ICommand Command { get; set; }
呼び出すコマンドを取得または設定します。

IDialogTransferContainer

生成元ウィンドウからのデータの受取用プロパティのインターフェイス

構文

public interface IDialogTransferContainer

プロパティ

object Container { get; set; }
生成元ウィンドウからのデータの受取用プロパティ

IMessageDialogActionParameter

MessageDialogAction へ渡すパラメーターのインターフェイス
IsDialog が false のときには Button の設定は反映されません。

構文

public interface IMessageDialogActionParameter

プロパティ

string Message { get; }
MessageBoxに表示するメッセージ
string Caption { get; }
MessageBox に表示するタイトル
MessageBoxButton Button { get; }
MessageBox に表示するボタン
bool IsDialog { get; }
true:ダイアログ(ユーザ応答を処理する)、false:メッセージ

IReceiveFinished

画面遷移完了時の操作に用いるインターフェイスです。

構文

interface IReceiveFinished

メソッド

void OnFinished(ITransContainer container)
画面遷移操作完了時に実行されるメソッド

ITransContainer

画面遷移の際のデータコンテナのインターフェイス

構文

public interface ITransContainer

プロパティ

string Key { get; }
遷移を区別するためのキーを取得します。
一つのビューモデルで複数の画面遷移を持つ場合の処理の分岐用
TransitionViewModelBase TransStartViewModel { get; }
遷移動作の開始元ビューモデルを取得します。
TransitionViewModelBase PreviousViewModel { get; set; }
前画面のビューモデルを取得・設定します。

IViewModelStatus

画面遷移を行うビューモデルの処理状況のプロパティのインターフェイス

構文

public interface IViewModelStatus

プロパティ

ViewModelStatus CurrentStatus { get; set; }
画面遷移を行うビューモデルの処理状況

IWindowCloseCommand

ウィンドウを閉じるためのビューモデルのインターフェイスです。

構文

public interface IWindowCloseCommand

プロパティ

bool CanCloseWindow { get; }
ウィンドウがクローズできる状態かを返します。

メソッド

void WindowClose()
ビューモデルからウィンドウへ Close を通知するメソッドです。