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 を通知するメソッドです。