Повторное использование компонента карточки

Компонент карточки может сообщить Windows-клиенту о поддержке им механизма повторного использования (кэширования), при активации которого компонент карточки не выгружается из памяти при закрытии карточки, а кэшируется в специальном хранилище и используется повторно, при обращении к карточкам данного типа.

Чтобы задействовать данный режим, необходимо:
  • Для карточек, унаследованных от типа CardControl, нужно реализовать в классе компонента карточки интерфейс IReusableCardComponent:

    public sealed partial class TestCard : CardControl, IReusableCardComponent
    {
    
    
     public bool CanBeReused
     {
      get { return true; } (1)
     }
    
     public ReusageMode Mode
     {
      get { return ReusageMode.OwnLogic; } (2)
     }
    }
    1 Определяем необходимость повторного использования компонента: true — используется, false — не используется.
    2 Указываем режим повторного использования.
  • Для карточек, унаследованных от типа BaseCardControl, нужно переопределить методы GetCanBeReused и GetReusageMode:

    public sealed partial class TestCard : BaseCardControl
    {
    
    
     protected override bool GetCanBeReused() (1)
     {
      return true;
     }
    
     protected override ReusageMode GetReusageMode() (2)
     {
      return ReusageMode.OwnLogic;
     }
    }
    1 Определятся необходимость повторного использования компонента.
    2 Определяется собственный режим повторного использования.

    В режиме ReusageMode.OwnLogic необходимость повторного использования определяется по значению переменной CanBeReused. В режиме ReusageMode.NoReusage компонент карточки кэшироваться не будет. В режиме ReusageMode.CardHostLogic необходимость кэширования компонента определяется внутренней логикой контейнера карточек.