Dinamicamente enumerar os valores de uma propriedade em .Net
-
21-08-2019 - |
Pergunta
Você sabe como listas de propriedades ImageList de um controle TreeView todos ImageLists em um formulário? Eu preciso de algo semelhante, mas com uma lista de strings. É como uma enumeração, mas definida em tempo de execução, com o objeto que expõe a propriedade em um PropertyGrid.
Assim, com uma lista de strings como { "foo", "bar", "grill"} a propriedade deve listar os mas se essa lista de strings é alterado (por exemplo, adicionar um item de "churrasco"), a propriedade deve enum { "foo", "bar", "grill", "churrasco" } em vez disso.
Solução
Se é apenas uma lista de strings que você precisa, dê uma olhada escrever o seu próprio TypeConverter
. Você precisará substituir o método GetStandardValues
.
Outras dicas
Este em CodeProject explica como escrever um personalizado TypeConverter
ou UITypeEditor
.