Si alguien está buscando Value Converter para encuadernación. Esto es lo que solía
<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;
}
}
acotada Enum
public enum DevStatus
{
Idle = 1,
Offline = 2,
Active = 3,
}
Conjunto de enumeración del modelo de vista y el convertidor se unirá la imagen correspondiente.
<Image Source="{Binding DevStatus, Converter={StaticResource ImageConverter}}" />
¿Funciona esto para las propiedades de un elemento diferente? Por ejemplo, ¿qué ocurre si quiero vincular una imagen basada en el valor de una etiqueta? ¿Funcionará de la misma manera? ¿Podrías elaborar? – user3841581