クラス等の仕様
クラス等の仕様
- 詳細
- カテゴリ: クラス等の仕様
MakCraft 名前空間のライブラリ仕様
.NET Framework で利用可能なライブラリ、MakCraft.ViewModelBase パッケージの仕様。
.NET Core で利用可能なライブラリ、MakCraft.ViewModelBaseCore パッケージの仕様。
- 詳細
- カテゴリ: クラス等の仕様
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 を通知するメソッドです。
- 詳細
- カテゴリ: クラス等の仕様
ValidationViewModelBase クラス関連の仕様
ValidationViewModelBase
プロパティ変更通知及びデータ検証を実装したビューモデルの基底クラス
構文
public abstract class ValidationViewModelBase : WeakEventViewModelBase, IDataErrorInfo
プロパティ
-
public bool IsValid
- データ検証エラーの発生の有無を取得します。
-
public ValidationDictionary ViewModelState
- ビューモデルの状態及びバインディングの検証の状態を格納するビューモデル状態ディクショナリ オブジェクトを取得します。
メソッド
public void RemoveItemValidationError<T>(Expression<Func<T>> propertyName)
- propertyName に設定されている検証エラーメッセージを削除します。
PropertyHelper.GetName<T>(Expression<Func<T>> e) を用いてプロパティ名を取り出します。 public void RemoveItemValidationError([CallerMemberName] string propertyName = null)
- propertyName に設定されている検証エラーメッセージを削除します。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。 public bool IsPropertyAnnotationError<T>(Expression<Func<T>> propertyName)
- 指定されたプロパティの System.ComponentModel.DataAnnotations のデータ検証アトリビュート検査の結果を確認します。
PropertyHelper.GetName<T>(Expression<Func<T>> e) を用いてプロパティ名を取り出します。 public bool IsPropertyAnnotationError([CallerMemberName] string propertyName = null)
- 指定されたプロパティの System.ComponentModel.DataAnnotations のデータ検証アトリビュート検査の結果を確認します。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。 protected void RaisePropertyChangedWithRemoveItemValidationError<T>(Expression<Func<T>> e)
- PropertyChanged イベントを発火します。
プロパティ変更通知まえに当該プロパティの検証エラーの削除を行います。
PropertyHelper.GetName<T>(Expression<Func<T>> e) を用いてプロパティ名を取り出します。 protected virtual void RaisePropertyChangedWithRemoveItemValidationError([CallerMemberName] string propertyName = null)
- PropertyChanged イベントを発火します。
プロパティ変更通知まえに当該プロパティの検証エラーの削除を行います。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。 protected void SetPropertyWithRemoveItemValidationError<T>(ref T property, T value, [CallerMemberName] string propertyName = null)
- プロパティ名 property を value の値で書き換え、PropertyChanged イベントを発火します。
プロパティ変更通知まえに当該プロパティの検証エラーの削除を行います。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。
ValidationDictionary
データ検証に用いるディクショナリ
構文
class ValidationDictionary : IValidationDictionary
プロパティ
-
bool IsValid { get; }
- データ検証エラーの発生の有無を取得する。
メソッド
-
void AddError(string key, string errorMessage)
- データ検証エラーメッセージを追加する。
-
public void RemoveErrorByKey(string propertyName)
- propertyName に設定されているエラーメッセージを削除します。
-
public string GetValidationError(string propertyName)
- propertyName に対するエラーメッセージを返します。エラーがない場合は null を返します。
-
IEnumerator<KeyValuePair<string, ModelState>> GetEnumerator()
- コレクションを反復処理するために使用できる列挙子を返します。
ValidateConditionalAttribute
データ検証を行う条件を指定します。
構文
[AttributeUsage(AttributeTargets.Property)]
public class ValidateConditionalAttribute : Attribute
コンストラクタ
-
public ValidateConditionalAttribute(string comparedProperty, object value)
プロパティ
-
public string ComparedProperty
- 条件の比較対象となるプロパティ名を取得します。
-
public object Value
- 条件となる値を取得します。
IValidationDictionary
データ検証のインターフェイス
構文
public interface IValidationDictionary
プロパティ
-
bool IsValid { get; }
- データ検証エラーの発生の有無を取得する。
メソッド
-
void AddError(string key, string errorMessage)
- データ検証エラーメッセージを追加する。
-
void RemoveErrorByKey(string propertyName)
- propertyName に設定されているエラーメッセージを削除します。
-
IEnumerator<KeyValuePair<string, ModelState>> GetEnumerator()
- コレクションを反復処理するために使用できる列挙子を返します。
- 詳細
- カテゴリ: クラス等の仕様
WeakEventViewModelBase クラス関連の仕様
WeakEventViewModelBase
弱いイベントパターンを用いたリスナー登録機能を持つビューモデルベースです。
構文
public abstract class WeakEventViewModelBase : ViewModelBase
メソッド
-
public void AddListener(INotifyPropertyChanged notifyObject, IWeakEventListener weakEventListener)
- PropertyChangedEventManager へ弱いイベントのリスナーを登録します。
-
public void RemoveListener(INotifyPropertyChanged notifyObject, IWeakEventListener weakEventListener)
-
PropertyChangedEventManager から弱いイベントのリスナーを削除します。
(明示的に削除を行わなくてもメモリーリークは発生しません)
PropertyChangedWeakEventListener
弱いイベントパターンのリスナです。
構文
public class PropertyChangedWeakEventListener : IPropertyChangedWeakEventListener
メソッド
-
public bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
- イベント マネージャーからイベントを受信します。
イベント
-
public event PropertyChangedEventHandler WeakPropertyChanged
- 弱いイベントパターンを用いたプロパティ変更通知のイベントハンドラ
IPropertyChangedWeakEventListener
弱いイベントパターンを用いたプロパティ変更通知のイベントハンドラを持つ WeakEventListner のインターフェイス
構文
public interface IPropertyChangedWeakEventListener : IWeakEventListener, INotifyWeakPropertyChanged
INotifyWeakPropertyChanged
弱いイベントパターンを用いたプロパティ変更通知のイベントハンドラを持つ NotifyWeakPropertyChanged のインターフェイス。
構文
public interface INotifyWeakPropertyChanged
イベント
-
event PropertyChangedEventHandler WeakPropertyChanged
- 弱いイベントパターンを用いたプロパティ変更通知のイベントハンドラ
- 詳細
- カテゴリ: クラス等の仕様
ViewModelBase クラス関連の仕様
ViewModelBase
プロパティ変更通知を実装したビューモデルの基底クラス
構文
public abstract class ViewModelBase : NotifyObject, IDisposable
メソッド
protected bool IsUiThread()
- UI スレッドからのアクセスかどうかを判定する
protected override void RaisePropertyChanged([CallerMemberName] string propertyName = null)
- PropertyChanged イベントを発火します(呼び出し元のスレッドが UI スレッドでない場合には、UI スレッドにて実行を行います)。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。 protected void InvalidateRequerySuggested()
- CommandManager.RequerySuggested イベントを強制的に発火させます(呼び出し元のスレッドが UI スレッドでない場合には、UI スレッドにて実行を行います)。
public void Dispose()
- リソースの開放を行います。
protected virtual void Dispose(bool disposing)
- リソースの開放を行います。
NotifyObject
プロパティ変更通知を実装した基底クラス
構文
public abstract class NotifyObject : INotifyPropertyChanged
プロパティ
protected Dispatcher UiDispatcher { get; }
- UI スレッドのディスパッチャ
メソッド
-
protected void SetProperty<T>(ref T property, T value, [CallerMemberName] string propertyName = null)
- プロパティ名 property を value の値で書き換え、PropertyChanged イベントを発火します。
-
protected void RaisePropertyChanged<T>(Expression<Func<T>> e)
- PropertyChanged イベントを発火します(RaisePropertyChanged(string propertyName)を呼び出します)。
PropertyHelper.GetName<T>(Expression<Func<T>> e) を用いてプロパティ名を取り出します。 -
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
- PropertyChanged イベントを発火します。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。
イベント
public event PropertyChangedEventHandler PropertyChanged
- PropertyChanged イベント処理用のデリゲート
PropertyHelper
構文
public interface IValidationDictionary
メソッド
public static string GetName<T>(Expression<Func<T>> e)
- 引数で渡されたプロパティから当該プロパティの名前を返します。