Question

J'ai une simple énumération .Net. J'ai également un objet de modèle de vue qui a la valeur "CurrentValue". propriété du type de mon enum. Cette propriété peut être liée aux données (l'objet implémente INotifyPropertyChanged). Maintenant, j'aimerais afficher un élément d'interface utilisateur pour chaque valeur de l'énum, ??dans un ordre spécifique, et faire en sorte que l'option "CurrentValue" surligné (gras). Je voudrais que la déclaration soit quelque chose comme:

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

J'aimerais déclarer chaque valeur individuellement, pour spécifier l'ordre, mais aussi parce que je veux que certains éléments aient des valeurs de marge spécifiques. De plus, je souhaiterai afficher des icônes spécifiques pour chaque valeur ultérieurement.

Maintenant, je ne sais plus comment déclarer que je veux que le contrôle associé à CurrentValue soit en gras. J'ai essayé d'utiliser un DataTrigger générique dans un modèle pour vérifier le contenu par rapport à CurrentValue, mais il semble que la valeur d'un déclencheur ne puisse pas être une liaison.

J'ai également envisagé d'utiliser un contrôle ListBox désactivé, mais je ne peux pas avoir de marges spécifiques pour des éléments spécifiques. Ou puis-je?

Était-ce utile?

La solution

Essayez ceci pour la taille ...

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

Vous devez mapper les xmlns local sur votre espace de noms CLR.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top