Desidero mostrare un'icona/immagine diversa in base a un valore enum. Per esempio, se ho avuto il seguente enum:Come visualizzare icone Enum diverse usando solo XAML?
public enum UploadStatus
{
Unknown = 0,
WaitingToUpload = 10,
Uploading = 20,
Uploaded = 30,
UploadFailed = 40
}
mi piacerebbe scrivere XAML che sembra qualcosa di simile:
...
<EnumImage Value="{Binding Path=CurrentStatus}">
<EnumImageItem Value="Unknown" Image="/images/unknown.png" />
<EnumImageItem Value="WaitingToUpload" Image="/images/clock.png" />
<EnumImageItem Value="Uploading" Image="/images/upload.png" />
<EnumImageItem Value="Uploaded" Image="/images/tick.png" />
<EnumImageItem Value="UploadFailed" Image="/images/error.png" />
</EnumImage>
...
ho trovato molti post che suggeriscono personalizzato IValueConverters, ma quelle soluzioni non si adattano al paradigma XAML.
Eventuali suggerimenti o suggerimenti?
In che modo un valore convertito non "si adatta al paradigma XAML"? – AnthonyWJones
Bene, credo che i percorsi dell'immagine debbano rimanere nello XAML, non nel codice C#. Nelle soluzioni IValueConverter, il convertitore è responsabile della mappatura del valore enum in un percorso immagine. Vedo più benefici nel mantenere tutto in XAML. –
ValueConverter esiste esattamente per questo motivo. Era pensato per prendere un tipo di dati e convertirlo per la vista. – Stephan