[無効]ボタン現在のビューが保存されていない変更がある場合:どのように:無効にアクションを現在のビューがどのように変更保存していないとしたとき

このトピックでは、無効にする方法を示してアクションを現在にロードされたビジネス・オブジェクト際に、オブジェクト・スペースが変更されています。この目的のために、IObjectSpace.ModifiedChangedのイベントが処理され、そしてActionBase.Enabledプロパティがに基づいて設定されてIObjectSpace.IsModifiedのプロパティ。

このトピックでは、現在の変更が発生するロード操作のビジネス・オブジェクト・スペースを無効にする方法を示しています。この目的を達成するために、プロセスIObjectSpace。修正変更イベント、およびIObjectSpace.IsModified特性に応じて、「オペレーティング根拠」に設定してください。

Note 注意
このトピックで説明するアプローチは、モバイルプラットフォームでサポートされていません。それはあなたのモバイル・アプリケーションでこのシナリオを実装する必要がある場合は、使用してはお問い合わせサポートセンター
このトピックで説明するモバイルプラットフォームのアプローチがサポートされていません。あなたがモバイルアプリケーションでこのプログラムを実施する必要がある場合は、サポートセンターを使用してご連絡ください

パブリック クラスViewController1:のViewController {
    SimpleActionアクション1;
    パブリックViewController1(){
        アクション1 = 新しいのSimpleAction(この" アクション1 " 、DevExpress.Persistent.Base.PredefinedCategory.View)。
    }
    保護 オーバーライド ボイドOnActivated(){
         塩基.OnActivated()。
        ObjectSpace.ModifiedChanged + = ObjectSpace_ModifiedChanged。
        UpdateActionState();
    }
    ボイド ObjectSpace_ModifiedChanged(オブジェクト送信者、のEventArgs電子){
        UpdateActionState();
    }
    保護された 仮想 ボイドUpdateActionState(){
        [action1.Enabled " ObjectSpaceIsModified " ] =!ObjectSpace.IsModified;
    }
    保護 オーバーライド ボイドOnDeactivated(){
         塩基.OnDeactivated()。
        ObjectSpace.ModifiedChanged - = ObjectSpace_ModifiedChanged。
    }
}

 

その結果、アクション1は、現在のビューに保存されていない変更がある場合、UIにグレー表示されます。変更が(例えば、使用してデータストアに保存されるまで、アクションを実行することは不可能である保存アクション)。変更が保存されると、アクション1は、通常の状態に戻ります。

未保存の変更は、現在のビューに存在する場合したがって、操作1は、UIに灰色で示します。あなたは(保存操作を使用して、例えば)データストアへの変更を保存する前に、操作を実行できません。変更内容を保存した後、アクション1は、通常の状態に戻ります。

おすすめ

転載: www.cnblogs.com/foreachlife/p/How-to-Disable-an-Action-When-the-Current-View-Has-Unsaved-Changes.html
おすすめ