Лучший способ обработать вспомогательный объект в форме, которая управляет записью, которая может измениться? - PullRequest
0 голосов
/ 08 апреля 2019

Я ссылаюсь на класс вспомогательных изображений (который наследует абстрактный помощник изображений), который управляет информацией о фотографиях по всей форме. Есть несколько действий, которые пользователь может выполнить над этим изображением в форме (загрузка, разметка, сохранение в облаке и т. Д.). Несколько форм используют вспомогательный класс изображения (который наследует один и тот же абстрактный класс) по тем же причинам.

Иногда, например, если пользователь переходит к новой записи, изображение меняется. Поскольку класс помощника по изображению хранит всю необходимую информацию об изображении (включая соответствующие таблицы в базе данных, имя файла и т. Д.), Если изображение в форме изменяется, то мне нужно создать новый помощник.

В настоящее время я делаю это, сохраняя guid для текущего изображения в закрытой переменной, сохраняя помощник изображения в закрытой переменной, но вызывая помощник изображения через личное свойство, где get проверяет, изменилось ли изображение , сравнивая текущий guid с guid изображения формы.

Я чувствую, что должен быть лучший путь; например, можно ли выполнить проверку в помощнике по изображениям (и если да, то есть ли общий шаблон для этого?), поэтому мне не нужно иметь это сложное свойство в каждой форме, отображающей изображение (я).

Вот код для собственности. Я думаю, что это все, что нужно, чтобы донести идею, но дайте мне знать, если вам нужно больше Этот конкретный код находится в vb.Net. Спасибо!

   Private ReadOnly Property DRecImageHelper As DailyRecordImageHelper
        Get
            If Me._BsDailyRecord.Current Is Nothing Then Return Nothing
            Dim dailyRecordGuid As Guid = CType(DirectCast(Me._BsDailyRecord.Current, DataRowView).Item("DailyRecordGuid"), Guid)
            If _LastDailyRecordGuid_ForImageHandler <> dailyRecordGuid Then
                _DRecImageHelper = New DailyRecordImageHelper(dailyRecordGuid)
            End If
            _LastDailyRecordGuid_ForImageHandler = dailyRecordGuid
            Return _DRecImageHelper
        End Get
    End Property
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...