Domanda

Ho un semplice enum .Net. Ho anche un oggetto modello vista che ha un " CurrentValue " proprietà del tipo del mio enum. Questa proprietà può essere associata a dati (l'oggetto implementa INotifyPropertyChanged). Ora vorrei mostrare un elemento dell'interfaccia utente per ciascun valore dell'enum, in un ordine specifico, e avere il "CurrentValue" evidenziato (grassetto). Vorrei che la dichiarazione fosse simile a:

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

Vorrei dichiarare ogni valore singolarmente, per specificare l'ordine, ma anche perché voglio che alcuni elementi abbiano valori di margine specifici. Inoltre, voglio visualizzare icone specifiche per ciascun valore in seguito.

Ora sono perso su come posso dichiarare che voglio che il controllo associato a CurrentValue sia in grassetto. Ho provato a utilizzare un DataTrigger generico all'interno di un modello per verificare il contenuto rispetto a CurrentValue, ma sembra che il valore di un trigger non possa essere vincolante.

Ho anche pensato di optare per un ListBox disabilitato, ma non posso avere margini specifici per elementi specifici. O posso?

È stato utile?

Soluzione

Prova questo per dimensioni ...

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

Dovrai mappare il local xmlns sul tuo spazio dei nomi CLR.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top