Je travaille sur un projet modulaire composé de plusieurs capteurs, chacun héritant d'une classe abstraite Sensor
. Pour configurer chaque capteur, j'ai commencé à ajouter un panneau de contrôle utilisateur pour chaque capteur (hérite de UserControl
), qui est chargé à l'exécution et affiché dans un panneau par l'application appelante. Mais ensuite je me suis rendu compte que pour changer les propriétés du capteur, la classe Control
doit avoir accès à ces propriétés ou le capteur doit s'abonner aux changements de configuration dans le contrôle utilisateur. Cela ne semble pas correct, cependant, le contrôle devrait être contrôlant le capteur.UserControl dans la classe par rapport à la classe dans UserControl pour Windows Forms
Quelle est la solution la plus élégante pour contrôler mes capteurs sans créer un délégué?
Dois-je continuer sur la voie de:
class TestSensor : Sensor
{
public UserControl ControlPanel { get; } // returns a TestSensorControl
// ...
}
ou si mes capteurs sont créés à l'intérieur de mes commandes:
class TestSensorControl : UserControl
{
private TestSensor _sensor;
public TestSensor Sensor {
get {
return _sensor;
}
}
// ...
}
Les capteurs sont responsables de la vérification des changements d'état et de la communication à l'appel application en signalant un événement OnSensorEvent(...)
.
Alternativement, ma classe de base Sensor
pourrait hériter de UserControl, et mon SensorControl peut hériter de cela à la place, éliminant le besoin d'une classe de contrôle intermédiaire.
+ Ceci est une très bonne question. – Sabuncu