首页 > 解决方案 > 更新数据绑定对象中的值时的良好程序结构

问题描述

我正在编写一个基于 Winforms 的工具,并且可以在结构上使用一些指导。该程序通过串行与硬件进行通信,并显示一个 GUI 来显示值。大多数值要么从电脑设置,要么从设备读取。有一些是从电脑设置的,然后由设备确认。

数据流图

目前我有一个模型对象,其中包含设备可以发送或接收的所有值。它使用带有数据绑定的 PropertyChangedEvent 在表单上显示值。此外,还有一个监听事件的编码器/解码器,它对更改进行编码并将其发送到串行端口。

在串口接收函数中,消息被解码,并更新模型中的正确值。我遇到的问题是这将导致另一个 PropertyChangedEvent,它将发送另一个串行消息。我正在寻找一种用其他东西替换那个监听器的好方法?我想维护表单的数据绑定,以便每个表单元素都不需要事件。

大多数值是这样声明的:

private bool _voltageVBatToggle;
public bool voltageVBatToggle
{
    get => _voltageVBatToggle;
    set
    {
        if (_voltageVBatToggle != value)
        {
            _voltageVBatToggle = value;
            OnPropertyChanged();
        }
    }
}

标签: c#winformsarchitecture

解决方案


推荐阅读