gpt4 book ai didi

wpf - 如何从触发器绑定(bind)到另一个控件的属性?

转载 作者:行者123 更新时间:2023-12-03 06:05:22 24 4
gpt4 key购买 nike

在我的特定情况下,我想绑定(bind)到 TextBox 的 IsReadOnly 属性来设置 Button 的 Content 属性?它们都是同一个 StackPanel 的一部分。

我尝试使用 DataTrigger 来完成此操作,该 DataTrigger 绑定(bind)到 TextBox 的 ElementName,并使用 TextBox 名称作为 SourceName 的触发器。

有什么想法吗?

最佳答案

您需要将触发器指定为样式的一部分——按钮本身的触发器集合只能包含事件触发器。考虑到这一点,DataTrigger 就可以正常工作了。但是,有一个问题:触发器 setter 中的值不会覆盖本地内容属性。因此,您还必须在样式中设置默认内容。它的外观如下:

<Button>  <!-- Note no content set directly on button -->
<Button.Style>
<Style TargetType="Button">
<Setter Property="Content" Value="You may write!!!" /> <!-- Here is the 'normal' content -->
<Style.Triggers>
<!-- Here is how we bind to another control's property -->
<DataTrigger Binding="{Binding IsReadOnly, ElementName=textBox}" Value="True">
<Setter Property="Content" Value="NO NO NO" /> <!-- Here is the 'override' content -->
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

关于wpf - 如何从触发器绑定(bind)到另一个控件的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2520483/

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