微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WPF TextBox触发器来清除文本

我有很多TextBox控件,我试图编写一个样式,当禁用控件时清除Text属性.
我不想在代码背后有事件处理程序.

我写道:

<Style targettype="{x:Type TextBox}">                            
 <Style.Triggers>
  <Trigger Property="IsEnabled" Value="False">                                    
   <Setter Property="Text" Value="{x:Null}" />
  </Trigger>                                
 </Style.Triggers>
</Style>

问题是如果TextBox定义如下:

<TextBox Text={Binding Whatever} />

那么触发器不起作用(可能是因为它被绑定)
如何克服这个问题?

解决方法

因为您明确地设置TextBox中的文本,样式的触发器不能覆盖它.尝试这个:
<TextBox>
    <TextBox.Style>
        <Style targettype="{x:Type TextBox}">
            <Setter Property="Text" Value="{Binding Whatever}" />

            <Style.Triggers>
                <Trigger Property="IsEnabled"
                         Value="False">
                    <Setter Property="Text" Value="{x:Null}" /> 
                </Trigger>
            </Style.Triggers>
        </Style> 
    <TextBox.Style>
</TextBox>

原文地址:https://www.jb51.cc/html/223895.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐