检查图像在XAML中是否具有源

本文关键字:是否 图像 XAML 检查 | 更新日期: 2023-09-27 18:21:54

我有以下XAML行:

<extToolkit:BusyIndicator IsBusy="<image source not set>">
    <Image Source="{Binding FirstSideImage,
                            Converter={StaticResource bitmapConverter}}" />
</extToolkit:BusyIndicator>

我希望BusyIndicatorIsBusy属性取决于ImageSource属性的可用性。因此,如果没有图像源,则IsBusy应为true,否则为false

这有可能吗?当然,我可以在我的视图模型中有一个单独的属性来做同样的事情,但我想知道我是否可以直接从图像中导出它。

检查图像在XAML中是否具有源

您可以将样式应用于BusyIndicator,假设ImageContent(我不熟悉控件):

<extToolkit:BusyIndicator>
    <extToolkit:BusyIndicator.Style>
        <Style TargetType="extToolkit:BusyIndicator">
            <Setter Property="IsBusy" Value="False" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Content.Source, RelativeSource={RelativeSource Self}}"
                        Value="{x:Null}">
                    <Setter Property="IsBusy" Value="True" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </extToolkit:BusyIndicator.Style>
    <Image Source="{Binding FirstSideImage,
            Converter={StaticResource bitmapConverter}}" />
</extToolkit:BusyIndicator>

您也可以直接使用触发器中的绑定,并应用一个将null转换为true的转换器。