加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

WPF TextBox触发器来清除文本

发布时间:2020-12-14 19:42:20 所属栏目:资源 来源:网络整理
导读:我有很多TextBox控件,我试图编写一个样式,当禁用控件时清除Text属性. 我不想在代码背后有事件处理程序. 我写道: Style TargetType="{x:Type TextBox}" Style.Triggers Trigger Property="IsEnabled" Value="False" Setter Property="Text" Value="{x:Null}"
我有很多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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读