gpt4 book ai didi

wpf - 为什么不能使用DataTrigger设置TextBox.IsEnabled = True?

转载 作者:行者123 更新时间:2023-12-04 16:49:03 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个想要基于数据上下文中的枚举启用/禁用的TextBox。枚举有三个值(Anyone,Me,Someone),设置值“Someone”时,我想启用文本框。我可以通过反向设置值来破解解决方案(请参阅下文)。但是,有人可以解释为什么第一个解决方案不起作用吗?

这行不通...

<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="False">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Someone">
<Setter Property="IsEnabled"
Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>

奇怪的是,此代码 可以完成的工作。
<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Anyone">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Me">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>

最佳答案

您还必须在您的样式中设置初始isEnabled。否则,您的“本地” IsEnabled = false将永远赢!

更改您的样式,它将起作用。

<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsEnabled" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Someone">
<Setter Property="IsEnabled"
Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>

关于wpf - 为什么不能使用DataTrigger设置TextBox.IsEnabled = True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com