作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个由多个传感器组成的模块化项目,每个传感器都继承自一个抽象的 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/
我是一名优秀的程序员,十分优秀!