Si quelqu'un recherche un convertisseur de valeur pour la liaison. Voici ce que je
<Image Source="{Binding Converter={StaticResource ImageConverter},ConverterParameter=\{Status\}}" />
public class StatusToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string statusValue = parameter.ToString().ToUpper();
if (!string.IsNullOrEmpty(statusValue))
{
string result = string.Empty;
switch (statusValue)
{
case "IDLE":
result = "idle.png";
break;
case "OFFLINE":
result = "offline.png";
break;
default:
result = "online.png";
break;
}
var uri = new Uri("pack://application:,,,/PIE;component/Images/" + result);
return uri;
}
return string.Empty;
}
// No need to implement converting back on a one-way binding
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
Borné Enum
public enum DevStatus
{
Idle = 1,
Offline = 2,
Active = 3,
}
Set Enum de ViewModel et le convertisseur lieront l'image appropriée.
<Image Source="{Binding DevStatus, Converter={StaticResource ImageConverter}}" />
Est-ce que cela fonctionne pour les propriétés d'un élément différent? Par exemple, que se passe-t-il si je veux lier une image basée sur la valeur d'une étiquette, cela fonctionnera-t-il de la même manière? Pourriez-vous élaborer? – user3841581