У меня уже есть работающий конвертер bool в изображение, который отлично работает в другом приложении.Я скопировал и адаптировал код, но он не будет работать.Ребята, у вас есть идея?
мой XAML:
<Grid>
<Grid.Resources>
<ResourceDictionary>
<services:BooleanToObjectConverterService x:Key="boolToStyleImage"
x:TypeArguments="Style">
<services:BooleanToObjectConverterService.FalseObject>
<Style TargetType="Image">
<Setter Property="Source" Value="container_noconnect.png" />
</Style>
</services:BooleanToObjectConverterService.FalseObject>
<services:BooleanToObjectConverterService.TrueObject>
<Style TargetType="Image">
<Setter Property="Source" Value="container_withconnect.png" />
</Style>
</services:BooleanToObjectConverterService.TrueObject>
</services:BooleanToObjectConverterService>
</ResourceDictionary>
</Grid.Resources>
<Image Style="{Binding HasWebserviceConnection, Converter={StaticResource boolToStyleImage}}" Aspect="AspectFill"/>
</Grid>
Это мои классы: BooleanToObjectConverterService:
public class BooleanToObjectConverterService<T> : IValueConverter
{
public T FalseObject { set; get; }
public T TrueObject { set; get; }
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
return (bool)value ? this.TrueObject : this.FalseObject;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return ((T)value).Equals(this.TrueObject);
}
}
ImageResourceExtension:
[ContentProperty("Source")]
public class ImageResourceExtension : IMarkupExtension
{
public string Source { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
if (Source == null)
return null;
var imageSource = ImageSource.FromResource(Source);
return imageSource;
}
}
Я отладил код и мой HasWebserviceConnection
изменил значение правильно.
РЕДАКТИРОВАТЬ: Благодаря @Janne Matikainen я использовал DataTriggers, и теперь он работает.Завтра обновляю решение.Спасибо