Come rappresentare “opzioni” per la mia architettura plug-in (C # .NET WinForms)
Domanda
D'accordo fondamentalmente qui è dove sono a.
Ho un elenco di PropertyDescriptor oggetti . Questi descrivono le "Opzioni" campi personalizzati sulle mie Plugin, aka:
public class MyPlugin : PluginAbstract, IPlugin
{
[PluginOption("This controls the color of blah blah blah")]
[DefaultValue(Color.Red)]
public Color TheColor { get; set; }
[PluginOption("The number of blah blah blahs")]
[DefaultValue(10)]
public int BlahBlahBlahs { get; set; }
}
Così ho fatto tutte le parti dure. Ho tutti i descrizioni, valori predefiniti, nomi e tipi di questi personalizzati "opzioni del plugin"
La mia domanda è: quando un utente carica un plugin, come devo rappresentare queste opzioni per loro di configurazione? Sul back-end sarò utilizzando XML per la configurazione, in modo che non è quello che sto chiedendo. Sto chiedendo sul front-end: Che tipo di controllo WinForms dovrei usare per consentire agli utenti di configurare le opzioni di un plug-in, quando ci sarà una quantità sconosciuta di opzioni e diversi tipi utilizzati etc .?
Soluzione
Ho sempre usato lo standard built-in WinForms PropertyGrid . Funziona bene per diversi tipi di proprietà e per variare i numeri pure.