Pregunta

Tengo una enumeración .Net simple. También tengo un objeto de modelo de vista que tiene un " Valor actual " propiedad del tipo de mi enumeración. Esta propiedad puede estar vinculada a datos (el objeto implementa INotifyPropertyChanged). Ahora me gustaría mostrar un elemento de UI para cada valor de la enumeración, en un orden específico, y tener el " CurrentValue " resaltado (en negrita). Me gustaría que la declaración sea algo así 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>

Me gustaría declarar cada valor individualmente, para especificar el orden, pero también porque quiero que algunos de los elementos tengan valores de margen específicos. Además, querré mostrar íconos específicos para cada valor más adelante.

Ahora estoy perdido en cuanto a cómo puedo declarar que quiero que el control asociado con CurrentValue esté en negrita. Intenté usar un Data Trigger genérico dentro de una plantilla para comparar el contenido con el CurrentValue, pero parece que el valor de un activador no puede ser un enlace.

También consideré optar por un ListBox deshabilitado, pero no puedo tener márgenes específicos para elementos específicos. ¿O puedo?

¿Fue útil?

Solución

Pruébelo para ver el tamaño ...

<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>

Deberá asignar los xmlns local a su espacio de nombre CLR.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top