Хорошая структура программы при обновлении значений в объекте привязки к данным - PullRequest
0 голосов
/ 25 мая 2020

Я пишу инструмент на основе Winforms и могу использовать некоторые рекомендации по структуре. Программа обменивается данными с оборудованием через последовательный порт и отображает GUI для отображения значений. Большинство значений либо устанавливаются с p c, либо считываются с устройства. Некоторые из них устанавливаются из p c, а затем подтверждаются устройством.

data flow diagram

В настоящее время у меня есть объект Model со всеми значениями устройство может отправлять или получать. Он использует PropertyChangedEvent с привязкой данных для отображения значений в форме. Кроме того, существует кодировщик / декодер, который прослушивает событие, кодирует изменения и отправляет их на последовательный порт.

В функции приема последовательного порта сообщение декодируется, и обновляется правильное значение в модели. Проблема, с которой я столкнулся, заключается в том, что это вызовет другое событие PropertyChangedEvent, которое отправит другое последовательное сообщение. Я ищу хороший способ заменить этого слушателя чем-то другим? Я хотел бы сохранить привязку данных к форме, чтобы каждый элемент формы не нуждался в событии.

Большинство значений объявляются следующим образом:

private bool _voltageVBatToggle;
public bool voltageVBatToggle
{
    get => _voltageVBatToggle;
    set
    {
        if (_voltageVBatToggle != value)
        {
            _voltageVBatToggle = value;
            OnPropertyChanged();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...