gpt4 book ai didi

c# - Windows 窗体的 UserControl 内部类与 UserControl 内部类

转载 作者:行者123 更新时间:2023-11-30 22:43:30 29 4
gpt4 key购买 nike

我正在开发一个由多个传感器组成的模块化项目,每个传感器都继承自一个抽象的 Sensor 类。为了配置每个传感器,我已经开始为每个传感器添加一个用户控制面板(继承自 UserControl),它在运行时加载并由调用应用程序显示在面板中。

但后来我意识到要从控件更改传感器属性,Control 类需要访问这些属性,或者传感器必须订阅用户控件中的配置设置更改。这感觉不对,但是,控件应该控制传感器。

在不产生委托(delegate) hell 的情况下控制我的传感器的最优雅的解决方案是什么?

我应该继续走这条路吗:

class TestSensor : Sensor
{
public UserControl ControlPanel { get; } // returns a TestSensorControl
// ...
}

或者我的传感器应该在我的控件中创建:

class TestSensorControl : UserControl
{
private TestSensor _sensor;
public TestSensor Sensor {
get {
return _sensor;
}
}

// ...
}

传感器负责检查状态变化,并通过发出 OnSensorEvent(...) 事件信号将其传达给调用应用程序。

或者,我的 Sensor 基类可以从 UserControl 继承,而我的 SensorControl 可以从它继承,从而消除对中间控件类的需要。

最佳答案

Id 将传感器传递到控件中并有一个订阅过程。

关于c# - Windows 窗体的 UserControl 内部类与 UserControl 内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915126/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com