ICommonDynamicVisible Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A interface ICommonDynamicVisible deve ser implementada por qualquer classe que queira limitar a visibilidade de determinados valores Enum com base no estado da classe nesse momento.
Se uma classe contiver uma propriedade que expõe um Enum e essa classe implementar a interface ICommonDynamicVisible, ela será chamada para cada propriedade de um tipo Enum.
O parâmetro de contexto pode ser usado para determinar para qual enumeração esse método está sendo chamado. Se uma classe tiver apenas um Enum, não será necessário fazer essa verificação.
A maneira de limitar a visibilidade de determinados itens é simplesmente remover os valores indesejados de Enum dos valores ArrayList. Esse método é chamado em cada lista suspensa da enumeração para que seja possível alterar a lista em cada lista suspensa. Se a lista não for alterada depois de ser inicialmente determinada, armazenar em cache a ArrayList e devolvê-la será útil.
Deve-se tomar cuidado para garantir que você não esteja removendo valores para os quais a propriedade Enum já está definida. Isso não causará erros, pois todos os valores Enum ainda são válidos, mas quando o usuário clica na lista suspensa, ele não verá a opção atual como uma opção.
Além disso, nenhum novo valor deve ser adicionado à lista, pois esses valores não serão conversíveis para valores Enum válidos e um erro será gerado em runtime. Se for necessário um controle mais dinâmico, considere o uso do design DynamicValues.
public interface ICommonDynamicVisible
type ICommonDynamicVisible = interface
Public Interface ICommonDynamicVisible
Métodos
| Nome | Description |
|---|---|
| ConfigureVisibleEnumFields(ITypeDescriptorContext, ArrayList) |
Remover itens da lista de valores e retornar essa nova lista controlará os valores mostrados na Enum especificada no contexto. A enumeração pode ser determinada com código semelhante ao seguinte se (contexto. PropertyDescriptor.PropertyType == typeof(myEnum)) |