削除することはできません単一のインスタンスを持つことができ、ビジネスクラス - このトピックでは、シングルトンを実装する方法を学びます。たとえば、あなたは、エンドユーザの会社の詳細や、一般的なアプリケーションの設定について説明しシングルトンオブジェクトを持つことができます。それはシングルトン詳細表示を表示するために使用することができますアプローチも示されています。
このトピックでは、単一のインスタンスを実装する方法を学びます - 単一のインスタンスを削除することはできませんビジネス部門を持つことができます。例えば、エンドユーザーの会社または従来の詳細は、アプリケーションの設定を説明した単一の実施形態が存在し得ます。また、詳細ビューの単一の実施形態を表示するための方法を示します。
ヒントヒント
完全なサンプルプロジェクトは、DevExpress社のコード例のデータベースで利用可能でhttp://www.devexpress.com/example=E237
完全なサンプルプロジェクトは、コードサンプルデータベースDevExpress社で見つけることができますhttp://www.devexpress.com/example=E237
。
シングルトンを実装
例では、単一の実現します
シングルトンの削除と追加シングルトンの作成を禁止するには、使用して検証モジュール。次の属性を適用します。
無効シングルトンに削除して、他の単一のケースを作成し、認証モジュールを使用します。次の属性。
使用してDevExpress.Persistent.Validationを。 // ... [RuleObjectExists(" AnotherSingletonExists "、DefaultContexts.Save、" 真"、InvertResult = 真、 CustomMessageTemplate = " 別のシングルトンがすでに存在しています。" )] [RuleCriteria(" CannotDeleteSingleton "、DefaultContexts.Delete、" 偽" 、 CustomMessageTemplate = 「シングルトンを削除することはできません。」)] パブリック クラスをシングルトン{ // ... }
シングルトンクラス自体は、XPO永続クラスまたはEntity Frameworkのエンティティクラスのいずれかになります-それは問題ではありません。あなたはEntity Frameworkのを使用する場合は、追加することを忘れないでくださいシングルトンあなたにタイプをDbContext。
シングルトンクラス自体は、XPO永続クラスまたはEntity Frameworkのエンティティクラスすることができます - それは問題ではありません。あなたはEntity Frameworkのを使用する場合は、DbContextに型の単一のケースを追加することを忘れないでください。
シングルトンのインスタンスを作成するには、上書きUpdateDatabaseAfterUpdateSchemaのあなたのモジュールの方法アップデータ次のようにクラスを。
シングルトンクラス自体は、XPO永続クラスまたはEntity Frameworkのエンティティクラスすることができます - それは問題ではありません。あなたはEntity Frameworkのを使用する場合は、DbContextに型の単一のケースを追加することを忘れないでください。
公共 オーバーライド ボイドUpdateDatabaseAfterUpdateSchema(){ 塩基.UpdateDatabaseAfterUpdateSchema()。 もし(ObjectSpace.GetObjectsCount(typeof演算(シングルトン)、NULL)== 0 ){ ObjectSpace.CreateObject <シングルトン> (); } ObjectSpace.CommitChanges()。 }
一つはまだ存在しない場合に上記のコードを追加した後、シングルトンオブジェクトは、アプリケーション・データベースに作成されます。
アプリケーションデータベースがまだ単一のオブジェクトが存在しない場合、上記のコードを追加した後に、単一のオブジェクトが作成されます。
Note 注意
UpdateDatabaseAfterUpdateSchemaの方法は、アプリケーションがデバッグモードで実行するたびに呼ばれています。したがって、この方法は、アプリケーションまたはその更新を展開する際の初期データを作成するために目標とされます。あなたは、このメソッドを使用する方法の例を参照するには、を参照してくださいサプライ初期データ(XPO)トピック。
アプリケーションがデバッグモードで実行されるたびに、更新は、建築的なアプローチUpdateDatabase呼び出されます。したがって、この方法は、アプリケーションや更新を展開する際の初期データを作成するために設計されています。このメソッドを使用する方法の例を参照するには、初期データ(XPO)テーマを提供する参照してください。
シングルトンの詳細ビューへのアクセスを提供
これは、実施形態の詳細を単一のビューへのアクセスを提供します
XAFアプリケーションは、シングルトンの目的に応じて、異なる方法でシングルトンオブジェクトを表示することができます。このトピックでは、2つの可能な方法を詳しく説明しています。最初のものは使用PopupWindowShowActionを 2つ目は、メインフォームのナビゲーションコントロールに項目を追加します。
オブジェクトシングルトンXAFアプリケーションは、単一の実施形態の用途に応じて、異なる方法で表示することができます。このトピックでは、2つの可能な方法を詳しく説明しています。ナビゲーションコントロールの主形態の第2のエントリを追加する第1の使用PopupWindowShowAction、。
PopupWindowShowActionを使用してください
ポップアップ表示動作を使用します
以下のコードは示してShowSingleton含むWindowコントローラShowSingletonアクション。このアクションは、シングルトンオブジェクトの詳細ビューとポップアップウィンドウが表示されます。
コントローラのシングルウィンドウ表示動作「単一の表示」の次のコードを示します。ポップアップウィンドウの詳細を含むこのディスプレイは、シングルトンオブジェクトを表示します。
パブリック クラスShowSingletonController:WindowController { 公共ShowSingletonController(){ // あなたは、モバイルアプリケーションのために、このコントローラを実装する場合、次の行をコメントアウトし 、この .TargetWindowType = WindowType.Main。 PopupWindowShowAction showSingletonAction = 新しい PopupWindowShowAction(この、" ShowSingleton " 、PredefinedCategory.View)。 showSingletonAction.CustomizePopupWindowParams + = showSingletonAction_CustomizePopupWindowParams。 } プライベート のボイドshowSingletonAction_CustomizePopupWindowParams(オブジェクト送信者、CustomizePopupWindowParamsEventArgs E){ IObjectSpaceオブジェクト・スペース = Application.CreateObjectSpace(typeof演算(シングルトン))。 DetailView detailView = Application.CreateDetailView(オブジェクト・スペース、objectSpace.GetObjects <シングルトン>()[ 0 ])。 detailView.ViewEditMode = ViewEditMode.Edit。 e.View = detailView。 } }
アプリケーションを実行し、表示シングルトンアクションが使用可能であることを確認してください、あなたはこのアクションを使用してシングルトンを変更することができます。
アプリケーションを実行し、検査が操作の一つのケースが利用可能である明らかに、あなたは、単一のケースを変更するには、この操作を使用することができます。
ナビゲーションコントロールに項目を追加します。
ナビゲーションコントロールに項目を追加します。
追加NavigationItemのにノードをアプリケーションモデル使用してモデルエディタを(参照ナビゲーションコントロールに項目を追加します)。設定するビューに新しく追加されたノードのプロパティSingleton_DetailViewを。
(ナビゲーションコントロールに項目を追加する参照)アプリケーションノードモデルにナビゲートするための項目を追加するモデルエディタを使用します。Viewプロパティは、新しいノードを追加するように設定されているSingleton_DetailViewです。
アプリケーションを実行し、シングルトンのナビゲーションアイテムが利用可能であることを確認してください。
アプリケーションを実行し、シングルトンのナビゲーションアイテムが入手可能です確認してください。