图像可见性DataTrigger将默认设置为False

时间:2017-10-25 04:31:17

标签: c# wpf xaml

我有一个需要根据条件显示的图像,是否是附件文件。问题是,我设置了设置条件值的触发器,但似乎条件不起作用且值始终设置为true。

C#

问题是。有没有办法让默认值为false?只要条件包含附件,我就会在import re foo = 'asdfasdfzxc<test>afx<one>' bar = re.split(r'[\<\>]',foo)[:-1] bar.remove('afx') bar Out[89]: ['asdfasdfzxc', 'test', 'one'] 循环数据上将其设置为true。

3 个答案:

答案 0 :(得分:-1)

查看输出窗口并搜索: System.Windows.Data警告:40:BindingExpression路径错误

我认为AttachStat属性在图像的DataContext中不可用。

答案 1 :(得分:-1)

使用一个DataTrigger并确保DataContext的{​​{1}}具有公开Image属性:

AttachStat
<Image x:Name="img" Width="30" Height="30" Source="Resources/Images/chat_file_attach.png">
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Visibility" Value="Collapsed" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding AttachStat}" Value="True">
                    <Setter Property="Visibility" Value="Visible" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

答案 2 :(得分:-1)

您可以使用BoolToVisibilityConverter将布尔值转换为Visibility值和从Visibility值转换。

在资源部分:

<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter" />

图片:

<Image Width="30"
       Height="30"                                                    
       Source="Resources/Images/chat_file_attach.png"
       Visibility="{Binding AttachStat, 
             Converter={StaticResource BoolToVisibilityConverter}}" />