c# - 布尔到图像转换器不起作用。图像没有改变
问题描述
我已经有一个正在运行的布尔到图像转换器,可以在另一个应用程序上完美运行。我已经复制并修改了代码,但它不起作用。你们有想法吗?
我的 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,它现在可以工作了。我明天更新解决方案。谢谢
解决方案
就那么简单。谢谢@Janne Matikainen。
<Image x:Name="image" Source="container_noconnect.png" Aspect="AspectFill" >
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding Source={x:Reference advanceButton}, IsEnabled}" Value="True">
<Setter Property="Source" Value="container_withconnect" />
</DataTrigger>
</Image.Triggers>
</Image>
推荐阅读
- excel - 相同的间接公式在不同的计算机中工作方式不同
- c# - 像汽车仪表一样移动 XAML 边框
- google-cloud-platform - 不使用谷歌服务帐户密钥的本地开发
- python - 没有属性“编译”,我怎样才能修改类,使其工作?
- spring - Spring 集成:带有 Jaxb2RootElementHttpMessageConverter 的 Http 出站网关
- linux - mv 将文件名重命名为 _*_
- r - StringsR - 捕捉正确的数字
- elasticsearch - 如何为我的应用程序设计弹性索引?
- android - android Kotlin socketscanner.hasNext() 没有响应
- javascript - 使用 Yup 访问必填字段