Pergunta

Eu tenho um simples .Net enum. Eu também tenho um modelo de objeto de exibição que tem uma propriedade "CurrentValue" do tipo do meu enum. Esta propriedade pode ser ligados a dados (os implementos objeto INotifyPropertyChanged). Agora eu gostaria de mostrar um elemento de interface do usuário para cada valor da enumeração, em uma ordem específica, e ter a "CurrentValue" realçado (negrito). Gostaria que a declaração a ser algo como:

<StackPanel Orientation="Vertical">               
    <ContentControl Content="{x:Static MyEnum.Value1}" />
    <ContentControl Content="{x:Static MyEnum.Value2}" Margin="10" />
    <ContentControl Content="{x:Static MyEnum.Value3}" />
</StackPanel>

Eu gostaria de declarar cada valor individualmente, para especificar a ordem, mas também porque eu quero que alguns dos elementos a ter valores de margem específicos. Além disso, vou querer exibir ícones específicos para cada valor mais tarde.

Agora eu estou perdido a respeito de como eu posso declarar que eu quero o controle associado com o CurrentValue de ser ousado. Eu tentei usar um DataTrigger genérico dentro de um modelo para verificar o conteúdo contra a CurrentValue, mas parece que o valor de um gatilho não pode ser uma ligação.

Eu também considerado indo para um ListBox desativado, mas então eu não posso ter margens específicas para itens específicos. Ou posso?

Foi útil?

Solução

Tente este sobre para o tamanho ...

<ListBox>
  <ListBoxItem><local:MyEnum>Value1</local:MyEnum></ListBoxItem>
  <ListBoxItem Margin="10"><local:MyEnum>Value2</local:MyEnum></ListBoxItem>
  <ListBoxItem><local:MyEnum>Value3</local:MyEnum></ListBoxItem>
</ListBox>

Você precisa mapear os xmlns local ao seu namespace CLR.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top