【问题标题】:Empty String Check in Trigger触发器中的空字符串检查
【发布时间】:2021-12-02 06:03:04
【问题描述】:

如何检查触发器中的空字符串?

<Trigger Property="Source" SourceName="ControlName"  Value="">
     <Setter Property="Height" Value="0" TargetName="ControlName" />
</Trigger>

如果 imageControl 的源为空字符串或未设置,我已将控件的高度设置为 0?我该怎么做,基本上如果没有设置图像,那么我想在模板中隐藏图像控件。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    Kent 认为 Source 不是字符串是正确的,但如果您确实有要检查的 sting 属性,则可以使用静态 String.Empty 值:

    Value="{x:Static sys:String.Empty}"
    

    和声明为的 sys 命名空间

    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    

    【讨论】:

    • 我如何在 silverlight 项目中使用它,因此 silverlight 不支持静态
    • 感谢命名空间声明,这正是我所需要的 :)
    【解决方案2】:

    如果未设置该属性,则其值为null。要在 XAML 中指定 null,请使用标记扩展:

    <Trigger Property="Source" SourceName="ControlName"  Value="{x:Null}">
         <Setter Property="Height" Value="0" TargetName="ControlName" />
    </Trigger>
    

    【讨论】:

    • 感谢您的 cmets ,但我想检查空字符串,意思是 "" 或 string.Empty,我该如何检查?
    • Source 属性不是string,而是ImageSource,因此您尝试做的事情没有意义。
    • 假设我们有像文本块这样的控件,标签有内容或文本属性,它是字符串类型的。那我们怎么检查呢?
    • 和你检查的一样。我认为没有必要明确指定string.Empty,但我可能是错的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2015-05-29
    • 2011-04-01
    • 2017-11-25
    • 2018-11-28
    • 1970-01-01
    • 2014-07-30
    相关资源
    最近更新 更多