检查Image是否在XAML中有源

时间:2012-01-31 09:59:39

标签: c# .net wpf xaml

我有以下几行XAML:

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

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

这有可能吗?我当然可以在我的视图模型中有一个单独的属性,但是我想知道我是否可以直接从图像中得到它。

1 个答案:

答案 0 :(得分:1)

您可以将样式应用于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