В этой статье будет рассмотрено начало работы с CheckAction на примере демо-приложении Feature Center. Для CheckActionObjects_DetailView будет создан контроллер, содержащий Action типа CheckAction. Для созданного Action будут реализованы обработчики событий CheckedChanged и Execute. При изменении состояния CheckAction в поле Log отображаемого объекта будет добавлятся запись о текущем состоянии Action: "The 'CheckAction' is checked." или "The 'CheckAction' is unchecked.". Выполните следующие шаги.

using System;

using DevExpress.ExpressApp;

using DevExpress.Persistent.Base;

using Xafari.Actions;

//...

  public partial class CheckActionObjectsViewController : ViewController<DetailView>

   {

      private CheckActionObjects _currentObject;

 

      protected override void OnViewControlsCreated()

       {

          base.OnViewControlsCreated();

           _currentObject = (CheckActionObjects)View.CurrentObject;

       }

 

      public CheckActionObjectsViewController()

       {

           TargetViewType = ViewType.DetailView;

           TargetObjectType = typeof(CheckActionObjects);

 

          var checkAction = new CheckAction(this, "CheckAction", PredefinedCategory.RecordEdit)

           {

               Category = PredefinedCategory.RecordEdit.ToString(),

               Caption = "CheckAction",

               Id = "CheckAction"

           };

           checkAction.CheckedChanged += checkAction_CheckedChanged;

           checkAction.Execute += checkAction_Execute;

       }

 

      private void checkAction_CheckedChanged(object sender, EventArgs e)

       {

          var checkUncheck = (CheckAction) sender;

           LogTrace(checkUncheck.Checked

               ? string.Format("The 'CheckAction' is checked.")

               : string.Format("The 'CheckAction' is unchecked."));

       }

 

      private void checkAction_Execute(object sender, EventArgs e)

       {

          var checkUncheck = (CheckAction)sender;

           LogTrace(checkUncheck.Checked

               ? string.Format("The 'CheckAction' is checked.")

               : string.Format("The 'CheckAction' is unchecked."));

       }

 

      private void LogTrace(string message)

       {

           _currentObject.Log = message + "\r\n" + _currentObject.Log;

       }

 

      protected override void OnActivated()

       {

          base.OnActivated();

           Frame.GetController<CheckActionObjectsViewController>().Active.SetItemValue("CheckAction", true);

       }

     

      protected override void OnDeactivated()

       {

           Frame.GetController<CheckActionObjectsViewController>().Active.RemoveItem("CheckAction");

          base.OnDeactivated();

       }

   }

Как вы можете видеть в вышеприведенном коде, Action типа CheckAction создается в конструкторе. Методы checkAction_CheckedChanged(object sender, EventArgs e) и checkAction_Execute(object sender, EventArgs e) реализуют обработку соответствующих событий.  Сообщения о состоянии checkAction добавляются в свойство _currentObject.Log с помощью вспомогательного метода LogTrace(string message).

Вы можете просмотреть полный код, используемый в этой статье, в файле CheckActionObjectsViewController.cs демо-приложения Feature Center, установленного вместе с Xafari.